Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 6386|Répondre: 3

[Source] .NET Core utilise des canaux de file d’attente haute performance

[Copié le lien]
Publié le 08-05-2023 à 22:11:01 | | | |
System.Threading.Channels estNouveaux types de collections introduits après .NET Core 3.0Il peut être utilisé pour mettre en file d’attente des messages, produire et consommer des données, et les API publiques Writer et Reader correspondent aux producteurs et consommateurs de messages, ce qui rend également Channel plus concis et facile à utiliser.

.NET/C# est basé sur la file d’attente de tâches en arrière-plan BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Bibliothèque System.Threading.Channels :La connexion hyperlientérée est visible.
<T> Classe de canal :La connexion hyperlientérée est visible.

Type de canal

Microsoft propose deux types de canaux : l’un est un canal limité à capacité limitée et l’autre un canal non lié à capacité illimitée.

Créer un canal à capacité limitée:Channel.CreateBounded<string>(100) ;
Créer une chaîne à capacité illimitée:Channel.CreateUnbounded<string>() ;

Créez des canaux illimités

Lors de la création d’une chaîne, vous pouvez définir le SingleWriter et le SingleReader de ChannelOptions pour spécifier un seul producteur et consommateur lorsque la chaîne est réglée sur faux, lorsque SingleWriter = true est défini, cela limitera un seul producteur à écrire des données simultanément, SingleReader = true est identique.


Essayez d’ouvrir trois fils de discussion producteurs et un fil de discussion consommateur avec le code suivant :



Le consommateur utilise WaitToReadAsync pour attendre que les données soient lues. Les consommateurs tentent de lire les données seulement lorsqu’elles sont disponibles.


Dans le code ci-dessus, les consommateurs lisent les données une par une pour effectuer des opérations, comment les fabriquerDonnées sur la consommation massive des consommateursQu’en est-il d’un traitement ?

Créez une nouvelle extension ChannelReaderExtensions avec le code suivant :


Ajustez le code consommateur comme suit :



(Fin)




Précédent:ASP.NET Core (18) Personnaliser un cache de sortie OutputCache simple
Prochain:[Combat réel]. Bibliothèque de localisation d’adresses IP hors ligne NET/C# (domicile)
Publié le 08-05-2023 à 22:50:27 |
Apprendre à apprendre
Publié le 12-05-2023 à 10:07:46 |
Apprendre à apprendre
Publié le 16-05-2023 à 17:21:37 |
Apprendre à apprendre
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com