Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 6386|Antwort: 3

[Quelle] .NET Core Hochleistungs-Warteschlange-Kanäle werden verwendet

[Link kopieren]
Veröffentlicht am 08.05.2023, 22:11:01 Uhr | | | |
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.

.NET/C# basiert auf der BlockingCollection-Hintergrund-Task-Warteschlange
https://www.itsvse.com/thread-9528-1-1.html


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)




Vorhergehend:ASP.NET Core (18) Anpassen Sie einen einfachen OutputCache-Output-Cache
Nächster:[Tatsächlicher Kampf]. NET/C# Offline-IP-Adresse (Heim-)Locator-Bibliothek
Veröffentlicht am 08.05.2023, 22:50:27 |
Lernen lernen
Veröffentlicht am 12.05.2023, 10:07:46 |
Lernen lernen
Veröffentlicht am 16.05.2023, 17:21:37 |
Lernen lernen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com