C# 为什么TaskFactory.StartNew会收到CancellationToken

C# 为什么TaskFactory.StartNew会收到CancellationToken,c#,.net,task-parallel-library,task,cancellation-token,C#,.net,Task Parallel Library,Task,Cancellation Token,可能重复: 此方法接收CancellationToken: CancellationTokenSource cts = new CancellationTokenSource(4); var t = Task.Factory.StartNew(() => { // code }, cts.Token); 由于取消是协作的(实际工作代码需要观察取消令牌),将其作为参数传递给StartNew方法的目的是什么?它允许将任务本身标记为已取消,从而允许触发等待第一个任务的任何任务(即与task.

可能重复:

此方法接收CancellationToken:

CancellationTokenSource cts = new CancellationTokenSource(4);
var t = Task.Factory.StartNew(() => { // code }, cts.Token);

由于取消是协作的(实际工作代码需要观察取消令牌),将其作为参数传递给StartNew方法的目的是什么?

它允许将任务本身标记为已取消,从而允许触发等待第一个任务的任何任务(即与task.ContinueWith()方法一起排队的任何任务)。当然,如果取消了主任务,则这些后续任务也很可能需要取消

您完全正确,正在执行的实际代码也需要遵守cancel令牌