Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 6386|Răspunde: 3

[Sursă] Se folosesc canalele de coadă de înaltă performanță .NET Core

[Copiază linkul]
Postat la 2023-5-8 22:11:01 | | | |
System.Threading.Channels esteNoi tipuri de colecții introduse după .NET Core 3.0Poate fi folosit pentru a pune mesaje la coadă, a produce și a consuma date, iar API-urile publice Writer și Reader corespund producătorilor și consumatorilor de mesaje, ceea ce face Channel mai concis și mai ușor de utilizat.

.NET/C# se bazează pe coada de sarcini în fundal BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Biblioteca System.Threading.Channels:Autentificarea cu hyperlink este vizibilă.
<T> Clasa canalului:Autentificarea cu hyperlink este vizibilă.

Tip de canal

Microsoft oferă două tipuri de canale: unul este un canal legat cu capacitate limitată și unul este un canal nelegat cu capacitate nelimitată.

Creează un canal cu capacitate limitată:Channel.CreateBounded<string>(100);
Creează un canal cu capacitate nelimitată:Channel.CreateUnbounded<string>();

Creează canale nelimitate

Când creezi un canal, poți seta SingleWriter și SingleReader din ChannelOptions să specifice un singur producător și consumator când canalul este setat pe false, când SingleWriter = true este setat, va limita doar un producător să scrie date simultan, SingleReader = true este același lucru.


Încearcă să deschizi trei fire de producție și unul de consumator cu următorul cod:



Consumatorul folosește WaitToReadAsync pentru a aștepta ca datele să fie citite. Consumatorii încearcă să citească datele doar după ce acestea sunt disponibile.


În codul de mai sus, consumatorii citesc datele una câte una pentru a efectua operații, cum să le facăDate despre consumul în masă al consumatorilorDar o bucată de procesare?

Creează o nouă extensie ChannelReaderExtensions cu următorul cod:


Ajustați codul de consumator astfel:



(Sfârșit)




Precedent:ASP.NET Nucleu (18) Personalizează un cache simplu de ieșire OutputCache
Următor:[Luptă propriu-zisă]. Bibliotecă de localizare a adresei IP offline NET/C# (acasă)
Postat la 2023-5-8 22:50:27 |
Învață să înveți
Postat la 2023-5-12 10:07:46 |
Învață să înveți
Postat pe 2023-5-16 17:21:37 |
Învață să înveți
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com