0

这对我来说似乎不直观:

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

4

1 回答 1

3

你误会了Wait()

Wait(CancellationToken)允许您取消等待操作。
它对基础任务没有影响。

于 2013-07-14T14:31:33.933 回答