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

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.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 

NuGet packages (878)

Showing the top 5 NuGet packages that depend on System.Threading.Channels:

Package Downloads
Serilog

Simple .NET logging with fully-structured events

Microsoft.Data.SqlClient

The current data provider for SQL Server and Azure SQL databases. This has replaced System.Data.SqlClient. These classes provide access to SQL and encapsulate database-specific protocols, including tabular data stream (TDS). Commonly Used Types: Microsoft.Data.SqlClient.SqlConnection Microsoft.Data.SqlClient.SqlException Microsoft.Data.SqlClient.SqlParameter Microsoft.Data.SqlClient.SqlDataReader Microsoft.Data.SqlClient.SqlCommand Microsoft.Data.SqlClient.SqlTransaction Microsoft.Data.SqlClient.SqlParameterCollection Microsoft.Data.SqlClient.SqlClientFactory When using NuGet 3.x this package requires at least version 3.4.

StackExchange.Redis

High performance Redis client, incorporating both synchronous and asynchronous usage.

Microsoft.CodeAnalysis.Workspaces.Common

A shared package used by the .NET Compiler Platform ("Roslyn") including support for analyzing projects and solutions. Do not install this package manually, it will be added as a prerequisite by other packages that require it. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/adb4347a172149b3ec18552da62e4da6fb2cf362.

Microsoft.CodeAnalysis.CSharp.Workspaces

.NET Compiler Platform ("Roslyn") support for analyzing C# projects and solutions. More details at https://aka.ms/roslyn-packages This package was built from the source at https://github.com/dotnet/roslyn/commit/adb4347a172149b3ec18552da62e4da6fb2cf362.

GitHub repositories (162)

Showing the top 20 popular GitHub repositories that depend on System.Threading.Channels:

Repository Stars
microsoft/semantic-kernel

Integrate cutting-edge LLM technology quickly and easily into your apps

dotnet/roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.

OpenRA/OpenRA

Open Source real-time strategy game engine for early Westwood games such as Command & Conquer: Red Alert written in C# using SDL and OpenGL. Runs on Windows, Linux, *BSD and Mac OS X.

SignalR/SignalR

Incredibly simple real-time web for .NET

dotnet/machinelearning

ML.NET is an open source and cross-platform machine learning framework for .NET.

JeffreySu/WeiXinMPSDK

微信全平台 .NET SDK, Senparc.Weixin for C#,支持 .NET Framework 及 .NET Core、.NET 10.0。已支持微信公众号、小程序、小游戏、微信支付、企业微信/企业号、开放平台、JSSDK、微信周边等全平台。 WeChat SDK for C#.

serilog/serilog

Simple .NET logging with fully-structured events

MassTransit/MassTransit

Distributed Application Framework for .NET

StackExchange/StackExchange.Redis

General purpose redis client

Azure/azure-sdk-for-net

This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.

actions/runner

The Runner for GitHub Actions :rocket:

kurrent-io/KurrentDB

KurrentDB is a database that's engineered for modern software applications and event-driven architectures. Its event-native design simplifies data modeling and preserves data integrity while the integrated streaming engine solves distributed messaging challenges and ensures data consistency.

ServiceStack/ServiceStack

Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all

dotnet/msbuild

The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.

dotnet/aspire

Aspire is the tool for code-first, extensible, observable dev and deploy.

akkadotnet/akka.net

Canonical actor model implementation for .NET with local + distributed actors in C# and F#.

protobuf-net/protobuf-net

Protocol Buffers library for idiomatic .NET

grpc/grpc-dotnet

gRPC for .NET

Xabaril/AspNetCore.Diagnostics.HealthChecks

Enterprise HealthChecks for ASP.NET Core Diagnostics Package

Cysharp/MagicOnion

Unified Realtime/API framework for .NET platform and Unity.

Version Downloads Last Updated
11.0.0-preview.1.26104.118 617 2/10/2026
10.0.3 95,979 2/10/2026
10.0.2 497,447 1/13/2026
10.0.1 525,575 12/9/2025
10.0.0 1,158,693 11/11/2025
10.0.0-rc.2.25502.107 5,629 10/14/2025
10.0.0-rc.1.25451.107 9,266 9/9/2025
10.0.0-preview.7.25380.108 2,353 8/12/2025
10.0.0-preview.6.25358.103 5,868 7/15/2025
10.0.0-preview.5.25277.114 5,035 6/6/2025
10.0.0-preview.4.25258.110 29,687 5/12/2025
9.0.13 21,939 2/10/2026
9.0.12 91,905 1/13/2026
9.0.11 752,923 11/11/2025
9.0.10 1,592,851 10/14/2025
9.0.9 1,938,482 9/9/2025
9.0.8 1,846,774 8/5/2025
9.0.7 1,639,503 7/8/2025
9.0.6 3,521,972 6/10/2025
9.0.5 1,858,600 5/13/2025