C# · Intermediário · Inglês · Técnico
CancellationToken
Struct que sinaliza um pedido de cancelamento cooperativo, criado por um CancellationTokenSource e repassado a operações assíncronas, que decidem quando parar.
Onde usar
Aparece como último parâmetro de métodos async e nos endpoints do ASP.NET Core, onde sinaliza que o cliente desconectou. Repassar o token adiante evita trabalho inútil e consultas penduradas.
Em código
using var cts = new CancellationTokenSource();
cts.CancelAfter(TimeSpan.FromSeconds(1));
try { await Task.Delay(5000, cts.Token); }
catch (OperationCanceledException)
{ Console.WriteLine("cancelado"); }Exemplos
Pass the cancellation token down to the HTTP call.
Repasse o cancellation token até a chamada HTTP.
The request was aborted, so the token got cancelled.
A requisição foi abortada, então o token foi cancelado.
Cuidado
Não é um cancelamento forçado: nada interrompe a thread, e o código só para se verificar o token ou passá-lo a uma API que o respeite.
Sinônimos
token de cancelamento