为什么TaskFactory.StartNew收到CancellationToken

可能重复:
任务构造函数中的取消令牌:为什么?

此方法接收CancellationToken:

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

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

它允许将任务本身标记为已取消,这可以允许等待第一个任务的任何任务被触发(即任何使用task.ContinueWith()方法排队的任务)。 当然,如果主要任务被取消,那么后续任务也很可能也需要被取消。

并且你完全正确的是,正在执行的实际代码也需要遵守取消令牌。