System.Threading.Channels istNeue Sammlungstypen, die nach .NET Core 3.0 eingeführt wurdenEs kann verwendet werden, um Nachrichten in die Warteschlange zu lagern, Daten zu erzeugen und zu konsumieren, und die öffentlichen Writer- und Reader-APIs entsprechen den Produzenten und Konsumenten von Nachrichten, was Channel zudem prägnanter und einfacher zu bedienen macht.
System.Threading.Channels-Bibliothek:Der Hyperlink-Login ist sichtbar. <T> Kanalklasse:Der Hyperlink-Login ist sichtbar.
Kanaltyp
Microsoft bietet zwei Arten von Kanälen an: Der eine ist ein gebundener Kanal mit begrenzter Kapazität und der andere ein ungebundener Kanal mit unbegrenzter Kapazität.
Erstellen Sie einen Kanal mit begrenzter Kapazität:Channel.CreateBounded<string>(100);
Erstellen Sie einen Kanal mit unbegrenzter Kapazität:Channel.CreateUnbounded<string>();
Erstelle unbegrenzte Kanäle
Beim Erstellen eines Kanals können Sie SingleWriter und SingleReader von ChannelOptions so einstellen, dass sie einen einzelnen Produzenten und Konsumenten angeben, wenn der Kanal auf false gesetzt ist; wenn SingleWriter = true gesetzt ist, beschränkt sich nur ein Produzent darauf, Daten gleichzeitig zu schreiben, SingleReader = true ist dasselbe.
Versuchen Sie, drei Producer-Threads und einen Consumer-Thread mit folgendem Code zu öffnen:
Der Verbraucher verwendet WaitToReadAsync, um auf das Lesen der Daten zu warten. Verbraucher versuchen, die Daten erst zu lesen, wenn sie verfügbar sind.
Im obigen Code lesen die Konsumenten Daten einzeln aus, um Operationen durchzuführen und zu erklären, wie man sie erstelltDaten zum Massenkonsum der VerbraucherWie sieht es mit einem Stück Verarbeitung aus?
Erstellen Sie eine neue ChannelReaderExtensions-Erweiterung mit folgendem Code:
Passen Sie den Verbrauchercode wie folgt an:
(Ende)
|