这个问题在这里已经有了答案:
9年前关闭。
此方法接收一个 CancellationToken:
CancellationTokenSource cts = new CancellationTokenSource(4);
var t = Task.Factory.StartNew(() => { // code }, cts.Token);
由于取消是合作的(实际工作代码需要观察取消 token ),将 this 作为参数传递给 StartNew 方法的目的是什么?
最佳答案
它允许将任务本身标记为已取消,这可以允许任何正在等待第一个任务的任务被触发(即任何与 task.ContinueWith() 方法排队的任务)。当然,如果取消主要任务,这些后续任务也很可能需要取消。
而且您完全正确,正在执行的实际代码也需要遵守取消标记。