Open-NET-Libraries/Open.ChannelExtensions
A set of extensions for optimizing/simplifying System.Threading.Channels usage.
8 Releases
Latest: 1y ago
.NET 9 Refreshv9.0Latest
📋 Changes
- Ensures proper use of `System.Threading.Lock` when locking in `BufferingChannelReader`.
- Includes memory efficient object pooling options for `.Batch` and `.Join`.
V7v7.0
First Channels V7 release.
Final V6 release.v6.3
Final release for Channels V6.
.WithTimeout(milliseconds) & .WithTimeout(timespan)v5.1.3
Updated reference to System.Threading.Channels 5.0.05.0.0
Microsoft.SourceLink.GitHub Addedv3.4.1
Added snupkg. Updated references with some improved instances of `.ConfigureAwait(false)`.
Improved exception handling for concurrent methods.v3.3.0
.NET Standard 2.1 Support3.0.0
📋 Changes
- Although .NET Core 3 has `IAsyncEnumerable<T> ReadAllAsync<T>()`, I decided to expose `.AsAsyncEnumerable()` as an alternative for .NET Standard 2.1 users.
- `.ToChannel<T>()` extension for `AsyncEnumerable<T>`.
- `.Batch()` and `.Join()` extensions better leverage on-demand requests from the source channel.
- `singleReader` optional parameter is commonly available.
- `deferredExecution` optional parameter exposed to guarantee methods can yield to the caller.
- Nullable support built in.
- Expanded test coverage.
