Add System.Threading.Channels package.md details
authorStephen Toub <stoub@microsoft.com>
Tue, 5 Sep 2023 21:43:54 +0000 (17:43 -0400)
committerViktor Hofer <viktor.hofer@microsoft.com>
Mon, 18 Sep 2023 14:24:47 +0000 (16:24 +0200)
src/libraries/System.Threading.Channels/src/PACKAGE.md

index 2709a6e..cd9c6b8 100644 (file)
@@ -2,43 +2,72 @@
 
 <!-- A description of the package and where one can find more documentation -->
 
-
+The `System.Threading.Channels` library provides types for passing data asynchronously between producers and consumers.
 
 ## Key Features
 
 <!-- The key features of this package -->
 
-*
-*
-*
+* 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
 
 <!-- A compelling example on how to use this package with code, as well as any specific guidelines for when to use the package -->
 
+```C#
+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 in this library -->
 
 The main types provided by this library are:
 
-* ``
-* ``
-* ``
+* `System.Threading.Channel<T>`
+* `System.Threading.Channel`
 
 ## Additional Documentation
 
 <!-- Links to further documentation. Remove conceptual documentation if not available for the library. -->
 
-* [Conceptual documentation](https://learn.microsoft.com/en-us/dotnet/standard/serialization/**LIBRARYNAME**/overview)
-* [API documentation](https://learn.microsoft.com/en-us/dotnet/api/**LIBRARYNAME**)
+* [Overview](https://devblogs.microsoft.com/dotnet/an-introduction-to-system-threading-channels/)
+* [API documentation](https://learn.microsoft.com/dotnet/api/system.threading.channels)
 
 ## Related Packages
 
 <!-- The related packages associated with this package -->
 
+https://www.nuget.org/packages/System.Threading.Tasks.Dataflow/
+
 ## Feedback & Contributing
 
 <!-- How to provide feedback on this package and contribute to it -->
 
-**LIBRARY NAME** is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).
\ No newline at end of file
+**System.Threading.Channels** is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).
\ No newline at end of file