Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 6386|Risposta: 3

[Fonte] Vengono utilizzati i canali di coda ad alte prestazioni di .NET Core

[Copiato link]
Pubblicato il 8-05-2023 alle 22:11:01 | | | |
System.Threading.Channels èNuovi tipi di collezione introdotti dopo .NET Core 3.0Può essere utilizzato per mettere in coda i messaggi, produrre e consumare dati, e le API pubbliche di Writer e Reader corrispondono ai produttori e consumatori dei messaggi, il che rende anche Channel più conciso e facile da usare.

.NET/C# si basa sulla coda di task in background BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Libreria System.Threading.Channels:Il login del link ipertestuale è visibile.
<T> Classe canale:Il login del link ipertestuale è visibile.

Tipo di canale

Microsoft offre due tipi di canali: uno è un canale vincolato con capacità limitata e uno è un canale non vincolato con capacità illimitata.

Crea un canale con capacità limitata:Channel.CreaLimitato<string>(100);
Crea un canale con capacità illimitata:Channel.CreateUnbounded<string>();

Crea canali illimitati

Quando si crea un canale, si può impostare SingleWriter e SingleReader di ChannelOptions per specificare un singolo produttore e consumatore quando il canale è impostato su falso; quando SingleWriter = true è impostato, limiterà solo un produttore a scrivere dati contemporaneamente, SingleReader = true è lo stesso.


Prova ad aprire tre thread di produttori e uno di consumatori con il seguente codice:



Il consumatore utilizza WaitToReadAsync per attendere che i dati vengano letti. I consumatori cercano di leggere i dati solo dopo che sono disponibili.


Nel codice sopra, i consumatori leggono i dati uno per uno per eseguire operazioni, come realizzarliDati sul consumo di consumo in massaE per quanto riguarda un pezzo di lavorazione?

Crea una nuova estensione ChannelReaderExtensions con il seguente codice:


Regola il codice consumer come segue:



(Fine)




Precedente:ASP.NET Core (18) Personalizza una semplice cache di uscita OutputCache
Prossimo:[Combattimento vero e proprio]. Libreria localizzatore di indirizzi IP offline NET/C# (home)
Pubblicato il 8-05-2023 22:50:27 |
Impara a imparare
Pubblicato il 12-05-2023 alle 10:07:46 |
Impara a imparare
Pubblicato il 16-05-2023 17:21:37 |
Impara a imparare
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com