Junior — Middle
Quais métodos podem ser usados para cancelar a execução de uma tarefa no sistema?
sobes.tech IA
Resposta da IA
Em C#, para cancelar a execução de uma tarefa (Task), geralmente utiliza-se o mecanismo CancellationToken. Os principais métodos de cancelamento:
- CancellationTokenSource — cria um token de cancelamento.
- Passar CancellationToken para uma tarefa ou método assíncrono.
- Dentro da tarefa, verificar periodicamente a propriedade
token.IsCancellationRequestedou chamartoken.ThrowIfCancellationRequested(). - Chamar
CancellationTokenSource.Cancel()para solicitar o cancelamento.
Exemplo:
var cts = new CancellationTokenSource();
var token = cts.Token;
var task = Task.Run(() => {
for (int i = 0; i < 100; i++) {
token.ThrowIfCancellationRequested();
// trabalho
Thread.Sleep(100);
}
}, token);
// Cancelar a tarefa
cts.Cancel();
try {
task.Wait();
} catch (AggregateException ex) {
if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
Console.WriteLine("A tarefa foi cancelada");
}
}
Assim, o cancelamento é um processo cooperativo, onde a tarefa deve manter a verificação do token de cancelamento.