Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 6386|Resposta: 3

[Fonte] É usado o .NET Core Canal de fila de alto desempenho

[Copiar link]
Postado em 2023-5-8 22:11:01 | | | |
System.Threading.Channels éNovos tipos de coleções introduzidos após o .NET Core 3.0Ele pode ser usado para enfileirar mensagens, produzir e consumir dados, e as APIs públicas de Escritor e Leitor correspondem aos produtores e consumidores das mensagens, o que também torna o Channel mais conciso e fácil de usar.

.NET/C# é baseado na fila de tarefas em segundo plano BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Biblioteca System.Threading.Channels:O login do hiperlink está visível.
Classe do canal<T>:O login do hiperlink está visível.

Tipo de canal

A Microsoft oferece dois tipos de canais: um é um canal vinculado com capacidade limitada e outro é um canal não vinculado com capacidade ilimitada.

Crie um canal com capacidade limitada:Channel.CreateBounded<string>(100);
Crie um canal com capacidade ilimitada:Channel.CreateUnbounded<string>();

Crie canais ilimitados

Ao criar um canal, você pode definir o SingleWriter e o SingleReader do ChannelOptions para especificar um único produtor e consumidor quando o canal estiver definido como falso; quando SingleWriter = true estiver definido, ele limitará apenas um produtor a gravar dados ao mesmo tempo, SingleReader = true é o mesmo.


Tente abrir três threads de produtores e um thread de consumidores com o seguinte código:



O consumidor usa o WaitToReadAsync para esperar que os dados sejam lidos. Os consumidores tentam ler os dados apenas depois que eles estão disponíveis.


No código acima, os consumidores leem os dados um a um para realizar operações, como fabricá-losDados de consumo em massa do consumidorE quanto a um processamento?

Crie uma nova extensão ChannelReaderExtensions com o seguinte código:


Ajuste o código do consumidor da seguinte forma:



(Fim)




Anterior:ASP.NET Núcleo (18) Personalize um cache de saída simples do OutputCache
Próximo:[Combate real]. Biblioteca de localizadores de endereços IP offline NET/C# (home)
Postado em 08-05-2023 22:50:27 |
Aprenda a aprender
Postado em 2023-5-12 10:07:46 |
Aprenda a aprender
Postado em 16-05-2023 17:21:37 |
Aprenda a aprender
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com