Este projeto demonstra testes e exemplos de serviços assíncronos em .NET utilizando CancellationToken
para controle e cancelamento de tarefas.
Explorar padrões de implementação de tarefas assíncronas, simulação de operações demoradas e cancelamento seguro de execuções, incluindo cenários de uso com Task
, Task.Run
, Task.Delay
e integração com serviços agendados.
Executa uma tarefa em background, verificando periodicamente se o cancelamento foi solicitado:
Utiliza Task.Delay
para simular operações demoradas e permite cancelamento imediato:
Serviço que agenda o envio de e-mails diariamente às 9h da manhã, respeitando o cancelamento:
Exemplo de implementação de serviço agendado usando BackgroundService
para executar tarefas diariamente:
- O cancelamento de tarefas lança
TaskCanceledException
, comportamento esperado e tratado nos exemplos. - O uso de
CancellationToken
é fundamental para garantir que tarefas longas possam ser interrompidas de forma segura e controlada. - Os exemplos demonstram tanto padrões síncronos quanto assíncronos, além de integração com serviços hospedados.
- Configure o projeto para rodar em .NET 9.
- Execute os métodos de teste diretamente ou registre o serviço no
Program.cs
: - Para testar o cancelamento, chame
cancellationTokenSource.Cancel()
durante a execução.