CSRakowski.ParallelAsync 1.5.0

A .NET utility library for running async methods in parallel batches

Install-Package CSRakowski.ParallelAsync -Version 1.5.0
dotnet add package CSRakowski.ParallelAsync --version 1.5.0
<PackageReference Include="CSRakowski.ParallelAsync" Version="1.5.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CSRakowski.ParallelAsync --version 1.5.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

ParallelAsync

A .NET utility library for running async methods in parallel batches.

Available on NuGet: NuGet
and GitHub: GitHub stars

Example usage:

using CSRakowski.Parallel;

List<string> fileUrls = GetFileUrls();

var files = await ParallelAsync.ForEachAsync(fileUrls, (url) => {
    return DownloadFileAsync(url);
}, maxBatchSize: 8, allowOutOfOrderProcessing: true);

As of version 1.1 a fluent syntax is also available:

using CSRakowski.Parallel.Extensions;

List<string> fileUrls = GetFileUrls();

var files = await fileUrls
                    .AsParallelAsync()
                    .WithMaxDegreeOfParallelism(8)
                    .WithOutOfOrderProcessing(false)
                    .ForEachAsync((url) => {
                        return DownloadFileAsync(url);
                    });

Release notes

1.5.0

  • Updated target frameworks

1.4.1

  • Updated dependencies

1.4

  • Added gist support for IAsyncEnumberable{T}

1.3.2

  • Added the RunId to the BatchStart and BatchStop events

1.3.1

  • Reduced overhead in code paths where the input collection is a T[], maxBatchSize is greater than 1 and allowOutOfOrder is false

1.3

  • Changed assembly signing key
  • Further changes to internal implementation details
  • Performance improvements when the input collection is a T[] or IList{T} and maxBatchSize is set to 1
  • Performance improvements in the allowOutOfOrder code paths.

1.2.1

  • Marked the T on the IParallelAsyncEnumerable as covariant
  • Changes to internal implementation details

1.2

  • Added an EventSource to expose some diagnostic information.
  • Changed minimum supported NetStandard from 1.0 to 1.1 (Because of the EventSource).

1.1.1

  • Added support for IReadOnlyCollection{T} to the ListHelper.
  • Added more XmlDoc to methods and classes.

1.1

  • Renamed class to ParallelAsync to prevent naming conflicts with the System.Threading.Tasks.Parallel.
  • Renamed namespace to CSRakowski.Parallel to prevent ambiguous name conflicts between the class and the namespace.
  • Added new extension methods to allow for fluent sytax usage.

1.0.1

  • Enabled Strong Naming.

1.0

  • Initial release.

ParallelAsync

A .NET utility library for running async methods in parallel batches.

Available on NuGet: NuGet
and GitHub: GitHub stars

Example usage:

using CSRakowski.Parallel;

List<string> fileUrls = GetFileUrls();

var files = await ParallelAsync.ForEachAsync(fileUrls, (url) => {
    return DownloadFileAsync(url);
}, maxBatchSize: 8, allowOutOfOrderProcessing: true);

As of version 1.1 a fluent syntax is also available:

using CSRakowski.Parallel.Extensions;

List<string> fileUrls = GetFileUrls();

var files = await fileUrls
                    .AsParallelAsync()
                    .WithMaxDegreeOfParallelism(8)
                    .WithOutOfOrderProcessing(false)
                    .ForEachAsync((url) => {
                        return DownloadFileAsync(url);
                    });

Release notes

1.5.0

  • Updated target frameworks

1.4.1

  • Updated dependencies

1.4

  • Added gist support for IAsyncEnumberable{T}

1.3.2

  • Added the RunId to the BatchStart and BatchStop events

1.3.1

  • Reduced overhead in code paths where the input collection is a T[], maxBatchSize is greater than 1 and allowOutOfOrder is false

1.3

  • Changed assembly signing key
  • Further changes to internal implementation details
  • Performance improvements when the input collection is a T[] or IList{T} and maxBatchSize is set to 1
  • Performance improvements in the allowOutOfOrder code paths.

1.2.1

  • Marked the T on the IParallelAsyncEnumerable as covariant
  • Changes to internal implementation details

1.2

  • Added an EventSource to expose some diagnostic information.
  • Changed minimum supported NetStandard from 1.0 to 1.1 (Because of the EventSource).

1.1.1

  • Added support for IReadOnlyCollection{T} to the ListHelper.
  • Added more XmlDoc to methods and classes.

1.1

  • Renamed class to ParallelAsync to prevent naming conflicts with the System.Threading.Tasks.Parallel.
  • Renamed namespace to CSRakowski.Parallel to prevent ambiguous name conflicts between the class and the namespace.
  • Added new extension methods to allow for fluent sytax usage.

1.0.1

  • Enabled Strong Naming.

1.0

  • Initial release.

Release Notes

* Updated target frameworks

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.5.0 0 3/22/2020
1.4.1 2,598 8/29/2019
1.4.0 1,124 4/10/2019
1.3.2 880 7/19/2018
1.3.1 810 1/29/2018
1.3.0 469 1/28/2018
1.3.0-preview 347 1/27/2018
1.2.1 401 1/23/2018
1.2.0 385 1/6/2018
1.1.1 438 12/2/2017
1.1.0 496 11/25/2017
1.0.1 608 11/19/2017
1.0.0 886 11/19/2017