Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 6386|Antwoord: 3

[Bron] .NET Core high-performance queue Channels wordt gebruikt

[Link kopiëren]
Geplaatst op 2023-5-8 22:11:01 | | | |
System.Threading.Channels isNieuwe verzamelingstypen geïntroduceerd na .NET Core 3.0Het kan worden gebruikt om berichten in de wachtrij te zetten, data te produceren en te consumeren, en de publieke Writer- en Reader-API's komen overeen met de producenten en consumenten van berichten, wat Channel ook beknopter en gebruiksvriendelijker maakt.

.NET/C# is gebaseerd op de BlockingCollection achtergrondtaakwachtrij
https://www.itsvse.com/thread-9528-1-1.html


System.Threading.Channels-bibliotheek:De hyperlink-login is zichtbaar.
<T> Kanaalklasse:De hyperlink-login is zichtbaar.

Kanaaltype

Microsoft biedt twee soorten kanalen aan: één is een gebonden kanaal met beperkte capaciteit en één is een onbeperkt kanaal met onbeperkte capaciteit.

Maak een kanaal met beperkte capaciteit aan:Channel.CreateBounded<string>(100);
Maak een kanaal met onbeperkte capaciteit:Channel.CreateUnbounded<string>();

Maak onbeperkte kanalen aan

Bij het aanmaken van een kanaal kun je de SingleWriter en SingleReader van ChannelOptions instellen om een enkele producer en consument aan te geven wanneer het kanaal op false is gezet; wanneer SingleWriter = true is ingesteld, beperkt het zich tot slechts één producer om data tegelijk te schrijven, SingleReader = true is hetzelfde.


Probeer drie producerthreads en één consumerthread te openen met de volgende code:



De consument gebruikt WaitToReadAsync om te wachten tot de data is gelezen. Consumenten proberen de gegevens pas te lezen nadat deze beschikbaar is.


In bovenstaande code lezen consumenten gegevens één voor één om bewerkingen uit te voeren en te maken hoe ze het moeten makenGegevens over bulk consumentenconsumptieEn wat dacht je van een stuk verwerking?

Maak een nieuwe ChannelReaderExtensions-extensie aan met de volgende code:


Pas de consumentencode als volgt aan:



(Einde)




Vorig:ASP.NET Core (18) Pas een eenvoudige OutputCache outputcache aan
Volgend:[Echte gevechten]. NET/C# offline IP-adres (thuis) locatorbibliotheek
Geplaatst op 8-5-2023 22:50:27 |
Leer leren
Geplaatst op 2023-5-12 10:07:46 |
Leer leren
Geplaatst op 16-5-2023 17:21:37 |
Leer leren
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com