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

Vista: 57872|Resposta: 7

[Fonte] c# encapsula uma fila universal QueueHelper

[Copiar link]
Publicado em 29/08/2018 10:39:11 | | | |
No desenvolvimento diário, podemos usar filas, que são uma estrutura de armazenamento capaz de alcançar o "primeiro a entrar, primeiro a sair".

Cenários de aplicação: escrever logs, enviar e-mails, etc

Se precisarmos registrar o log de interface de cada usuário que solicita nossos dados, não precisamos escrever um log toda vez que o usuário solicitar, podemos colocar o conteúdo do log na fila e deixar que outras threads executem, para não afetar a eficiência da aplicação.

Outra vantagem é que, adicionando dados à fila no caso de concorrência, usando uma única thread para executar os dados da fila, pode evitar muitas exceções; se houver concorrência (multithreaded), o acesso ao mesmo arquivo físico causará exceções. (sujeito à disponibilidade)

Abordagem universal de fila:

Esta é uma classe abstrata, e você precisa herdar essa classe de abstração e implementar o método de abstração Executar. Como não sei que tipo de dados você quer processar, genéricos são usados aqui, ou seja, Entidade é do tipo string, parâmetros do método são do tipo string, e os dados que você está processando são dados do tipo string.

A fila thread-safe ConcurrentQueue garante que não haverá exceções em um ambiente multi-thread.

ManualResetEvent para controlar o sinal da thread,No passado, checávamos a fila para dados a cada poucos segundos ou minutosAgora, adicionamos os dados à fila e só precisamos passar um sinal!

Uso:

(Fim)




Anterior:Configuração do processo de produção do pacote de instalação do projeto Quero copiar a pergunta do arquivo de saída primário
Próximo:A questão dos redis chineses não pode ser exibida corretamente
 Senhorio| Publicado em 24/05/2019 10:13:59 |
Recomende um framework:

asp.net tutorial do framework hangfire de tarefas em segundo plano
https://www.itsvse.com/thread-7611-1-1.html
(Fonte: Architect_Programmer)
Publicado em 10/09/2019 10:26:26 |
Por que o método Execute na classe Test não é executado quando eu o executo?
 Senhorio| Publicado em 10/09/2019 21:52:44 |
hano7758 Postado em 2019-9-10 às 22:26
Por que o método Execute na classe Test não é executado quando eu o executo?

Você pode postar seu código?
 Senhorio| Publicado em 23/01/2021 11:53:46 |
.NET/C# é baseado na fila de tarefas em segundo plano BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html

Publicado em 26/07/2021 14:09:53 |
Como você pode ver o código
Publicado em 26/09/2022 22:20:08 |
Preciso aprender a usá-lo
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