Sobes.tech
Junior — Middle

Pode explicar o conceito de token de cancelamento no contexto da programação multithread?

sobes.tech IA

Resposta da IA

O token de cancelamento (Cancellation Token) na programação multithread é um objeto utilizado para coordenar o cancelamento de operações assíncronas ou paralelas.

Ideia principal: uma thread (ou componente) pode solicitar o cancelamento de uma operação, e outras que estão executando essa operação podem verificar periodicamente o estado do token e terminar corretamente se o cancelamento for solicitado.

Em C#, isso é implementado através da classe CancellationToken e CancellationTokenSource:

  • CancellationTokenSource cria um token e pode sinalizar o cancelamento.
  • CancellationToken é passado para tarefas ou métodos que podem verificar IsCancellationRequested e reagir ao cancelamento.

Exemplo:

var cts = new CancellationTokenSource();
var token = cts.Token;

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Executar trabalho
    }
    // Limpeza e finalização
}, token);

// Em algum lugar do código, solicitar cancelamento
cts.Cancel();

Isso permite interromper de forma segura e controlada operações longas ou em segundo plano.