Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 6386|Respuesta: 3

[Fuente] Se utiliza los canales de cola de alto rendimiento de .NET Core

[Copiar enlace]
Publicado el 8-05-2023 22:11:01 | | | |
System.Threading.Channels esNuevos tipos de colecciones introducidos tras .NET Core 3.0Puede utilizarse para poner en cola mensajes, producir y consumir datos, y las APIs públicas de Escritor y Lector corresponden a los productores y consumidores de mensajes, lo que también hace que Channel sea más conciso y fácil de usar.

.NET/C# se basa en la cola de tareas en segundo plano BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Biblioteca System.Threading.Channels:El inicio de sesión del hipervínculo es visible.
Clase de canal<T>:El inicio de sesión del hipervínculo es visible.

Tipo de canal

Microsoft ofrece dos tipos de canales: uno es un canal vinculado con capacidad limitada y otro es un canal no vinculado con capacidad ilimitada.

Crear un canal con capacidad limitada:Channel.CreateBounded<string>(100);
Crea un canal con capacidad ilimitada:Channel.CreateUnbounded<string>();

Crear canales ilimitados

Al crear un canal, puedes configurar el SingleWriter y el SingleReader de ChannelOptions para especificar un único productor y consumidor cuando el canal está configurado como falso; cuando SingleWriter = true esté activado, limitará que solo un productor escriba datos al mismo tiempo, SingleReader = true es el mismo.


Prueba a abrir tres hilos de productores y uno de consumidores con el siguiente código:



El consumidor utiliza WaitToReadAsync para esperar a que se lean los datos. Los consumidores intentan leer los datos solo después de que estén disponibles.


En el código anterior, los consumidores leen los datos uno a uno para realizar operaciones, cómo hacerlosDatos de consumo masivo de consumidores¿Y qué pasa con un procesado?

Crea una nueva extensión ChannelReaderExtensions con el siguiente código:


Ajusta el código de consumo de la siguiente manera:



(Fin)




Anterior:ASP.NET Núcleo (18) Personalizar una caché de salida sencilla de OutputCache
Próximo:[Combate real]. Biblioteca localizadora de direcciones IP offline NET/C#
Publicado el 8-05-2023 22:50:27 |
Aprende a aprender
Publicado el 12-05-2023 a las 10:07:46 |
Aprende a aprender
Publicado el 16-05-2023 17:21:37 |
Aprende a aprender
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com