<PackageReference Include="AsyncEnumerator" Version="4.0.0" />

Dasync.Collections.ParallelForEachExtensions

public static class ParallelForEachExtensions
Extensions methods for IEnumerable and IAsyncEnumerable to do parallel for-each loop in async-await manner
namespace Dasync.Collections { public static class ParallelForEachExtensions { public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, bool gracefulBreak, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, bool gracefulBreak, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, long, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, long, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, bool gracefulBreak, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, bool gracefulBreak, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerable<T> collection, Func<T, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IAsyncEnumerator<T> enumerator, Func<T, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerable<T> collection, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerator<T> enumerator, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerable<T> collection, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerator<T> enumerator, Func<T, long, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerable<T> collection, Func<T, long, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerator<T> enumerator, Func<T, long, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerable<T> collection, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerator<T> enumerator, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, bool breakLoopOnException, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerable<T> collection, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerator<T> enumerator, Func<T, Task> asyncItemAction, int maxDegreeOfParallelism, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerable<T> collection, Func<T, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); public static Task ParallelForEachAsync<T>(this IEnumerator<T> enumerator, Func<T, Task> asyncItemAction, CancellationToken cancellationToken = default(CancellationToken)); } }