System.Threading.Channels 8.0.0
About
The System.Threading.Channels library provides types for passing data asynchronously between producers and consumers.
Key Features
- Abstractions representing channels for one or more producers to publish data to one or more consumers
- APIs focused on asynchronous production and consumption of data
- Factory methods for producing multiple kinds of channels
How to Use
using System;
using System.Threading.Channels;
using System.Threading.Tasks;
Channel<int> channel = Channel.CreateUnbounded<int>();
Task producer = Task.Run(async () =>
{
int i = 0;
while (true)
{
channel.Writer.TryWrite(i++);
await Task.Delay(TimeSpan.FromSeconds(1));
}
});
Task consumer = Task.Run(async () =>
{
await foreach (int value in channel.Reader.ReadAllAsync())
{
Console.WriteLine(value);
}
});
await Task.WhenAll(producer, consumer);
Main Types
The main types provided by this library are:
System.Threading.Channel<T>System.Threading.Channel
Additional Documentation
Related Packages
https://www.nuget.org/packages/System.Threading.Tasks.Dataflow/
Feedback & Contributing
System.Threading.Channels is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.
Showing the top 20 packages that depend on System.Threading.Channels.
| Packages | Downloads |
|---|---|
|
Serilog
Simple .NET logging with fully-structured events
|
946 |
|
RabbitMQ.Client
The RabbitMQ .NET client is the official client library for C# (and, implicitly, other .NET languages)
|
924 |
|
StackExchange.Redis
High performance Redis client, incorporating both synchronous and asynchronous usage.
|
497 |
|
Serilog
Simple .NET logging with fully-structured events
|
184 |
|
Serilog.Sinks.PeriodicBatching
Buffer batches of log events to be flushed asynchronously.
|
160 |
|
StackExchange.Redis
High performance Redis client, incorporating both synchronous and asynchronous usage.
|
142 |
|
RabbitMQ.Client
The RabbitMQ .NET client is the official client library for C# (and, implicitly, other .NET languages)
|
134 |
|
Serilog
Simple .NET logging with fully-structured events
|
119 |
|
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
|
119 |
|
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
|
95 |
|
RabbitMQ.Client
The RabbitMQ .NET client is the official client library for C# (and, implicitly, other .NET languages)
|
92 |
|
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
|
91 |
|
Microsoft.AspNetCore.SignalR.Core
Real-time communication framework for ASP.NET Core.
|
60 |
|
Serilog
Simple .NET logging with fully-structured events
|
12 |
|
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
|
11 |
|
Npgsql
Npgsql is the open source .NET data provider for PostgreSQL.
|
7 |
|
StackExchange.Redis
High performance Redis client, incorporating both synchronous and asynchronous usage.
|
3 |
.NET Framework 4.6.2
- System.Threading.Tasks.Extensions (>= 4.5.4)
.NET 6.0
- No dependencies.
.NET 7.0
- No dependencies.
.NET 8.0
- No dependencies.
.NET Standard 2.0
- System.Threading.Tasks.Extensions (>= 4.5.4)
.NET Standard 2.1
- No dependencies.