Вряд ли вам нужно бросить TaskCanceledException
.TaskCanceledException
является результатом отмененной задачи, которая содержит CancellationToken
, который соответствует токену в OperationCanceledException
, выданном в асинхронной операции вашей задачи.
Из вашего фрагмента кода вы можете использовать:
ct.ThrowIfCancellationRequested
, в отличие от более многословного:
if (ct.IsCancellationRequested)
throw new OperationCancelledException(ct);
Но неясно, в каком направлении в конечном итоге давать советы без дополнительного контекста.Существуют варианты использования асинхронных операций для тихой отмены / завершения или посредством OperationCancelledException
отмены.