这对我来说似乎不直观:
var cts = new CancellationTokenSource();
cts.Cancel();
var tcs = new TaskCompletionSource<int>();
try
{
tcs.Task.Wait(cts.Token);
}
catch (OperationCanceledException)
{
Console.WriteLine(tcs.Task.Status); //TaskStatus.WaitingForActivation
}
我希望它将状态更新为TaskStatus.Canceled
。将其留在TaskStatus.WaitingForActivation
中的理由是什么?
答案 0 :(得分:3)
你误解了Wait()
。
Wait(CancellationToken)
可让您取消等待操作
它对基础任务没有影响。