У меня такая ситуация:
private Task LongRunningTask = /* Something */;
private void DoSomethingMore(Task previousTask) { }
public Task IndependentlyCancelableSuccessorTask(CancellationToken cancellationToken)
{
return LongRunningTask.ContinueWith(DoSomethingMore, cancellationToken);
}
В частности, поведение, которое меня интересует, подробно описано в странице MSDN о задачах продолжения в следующих выражениях:
Продолжение переходит в состояние
Canceled
в следующих сценариях:
- [...]
- Когда продолжение было передано
System.Threading.CancellationToken
в качестве аргумента и свойствоIsCancellationRequested
токенtrue
перед продолжением. В этом случае продолжение не начинается и переходит в состояниеCanceled
.
Выполняется код выше. Тем не менее, я нахожусь в процессе преобразования как можно большего числа моих продолжений в использование ключевого слова await
.
Есть ли эквивалент с помощью await
, который позволит продолжить отмену до завершения ожидаемой задачи?