C# 带有CancellationTokenSource的TaskCompletionSource取消不更新任务。状态?

C# 带有CancellationTokenSource的TaskCompletionSource取消不更新任务。状态?,c#,task-parallel-library,C#,Task Parallel Library,这对我来说似乎不太直观: 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.Wa

这对我来说似乎不太直观:

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
}
var cts=new CancellationTokenSource();
cts.Cancel();
var tcs=new TaskCompletionSource();
尝试
{
tcs.Task.Wait(cts.Token);
}
捕获(操作取消异常)
{   
Console.WriteLine(tcs.Task.Status);//TaskStatus.WaitingForActivation
}

我希望它将状态更新为
TaskStatus.cancelled
。将其保留在
任务状态。等待激活的原因是什么?

您误解了
等待()

Wait(CancellationToken)
允许您取消等待操作。

它对基础任务没有影响。

您误解了
Wait()

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