Skip to content

Instantly share code, notes, and snippets.

@natenho
Created July 16, 2019 05:48
Show Gist options
  • Save natenho/ff8ba5f61c10b31cf802758fd6b7fa23 to your computer and use it in GitHub Desktop.
Save natenho/ff8ba5f61c10b31cf802758fd6b7fa23 to your computer and use it in GitHub Desktop.
async Task ProcessMultipleAtOnce<T>(int maxDegreeOfParallelism, IEnumerable<T> items, Func<T, Task> func)
{
var actionBlock = new ActionBlock<T>(func, new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = maxDegreeOfParallelism });
foreach (T item in items)
{
await actionBlock.SendAsync(item);
}
actionBlock.Complete();
await actionBlock.Completion;
}
// https://stackoverflow.com/a/14076323/1987788
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment