Como cancelar uma Task de longa duração em C# sem causar deadlock
Cancelamento cooperativo com CancellationToken, CancelAsync, Task.WaitAsync e tokens ligados no .NET 11. Mais os padrões de bloqueio que transformam um cancelamento limpo em deadlock.