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

Vista: 3427|Resposta: 2

[Fonte] Um novo temporizador no .NET 6, o PeriodicTimer, é usado

[Copiar link]
Publicado em 02/08/2023 19:12:40 | | |
Requisitos: Use ASP.NET Core 6 para criar um novo serviço de antecedentes para pesquisar regularmente e obter dados e utilizá-loSystem.Timers.TimerO questionamento do temporizador, adicionar código adicional do Monitor para evitar execuções repetidas ao mesmo tempo, embora atenda às necessidades do meu negócio, não é elegante o suficiente, e usar o novo temporizador PeriodicTimer em .NET 6 pode atender melhor às necessidades do meu negócio.

Como desenvolvedor, você pode já ter usado temporizadores no .NET antes. Hoje em dia, existem muitos tipos de temporizadores no .NET, cada um com uma função diferente. Como segue:

  • System.Threading.Timer
  • System.Timers.Timer
  • System.Windows.Forms.Timer
  • System.Web.UI.Timer
  • System.Windows.Threading.DispatcherTimer


Um novo Timer foi introduzido no .NET 6 - System.Threading.PeriodicTimer, e a maior diferença em relação aos Timers anteriores é que o tratamento de eventos do novo PeriodicTimer pode ser usado de forma assíncrona mais conveniente, eliminando o mecanismo de callbacks e reduzindo a complexidade do uso.

O .NET 6 introduziu um novo tipo de temporizador chamado PeriodicTimer. O principal objetivo do PeriodicTimer é evitar o uso de callbacks.Evitar callbacks nos poupa de lidar com vazamentos de memória que podem ocorrer em operações de longo prazo, e podemos escrever código assíncrono em vez de sincronizado sobre assíncrono para usar esse método em callbacks. Você pode estar lidando com o tipo atual de temporizadorOutro problema são as chamadas de retorno sobrepostas。 Se você não escreve código para cenários de sobreposição de callback, pode perceber comportamentos inesperados na sua aplicação.

criarPeriodicTimerA instância é muito simples, o único parâmetro que você precisa fornecer é o valor do período, o código é o seguinte:

Código de Tarefa de Segundo Plano de Temporização Assíncrona:

(Fim)





Anterior:Erros de decodificação no Base64 existem em todas as versões do .NET
Próximo:.NET/C# saída genérica em T covariante e inversor na interface
 Senhorio| Publicado em 02/08/2023 20:22:23 |
 Senhorio| Publicado em 12/11/2023 09:42:28 |
O serviço para, e o CancellationToken notifica o cancelamento da tarefa, resultando no lançamento:OperaçãoExceçãoCanceladaanormal
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