此方法收到CancellationToken:
CancellationTokenSource cts = new CancellationTokenSource(4);
var t = Task.Factory.StartNew(() => { // code }, cts.Token);
由于取消是合作的(实际工作代码需要观察取消令牌),将此作为参数传递给StartNew方法的目的是什么?
答案 0 :(得分:3)
它允许将任务本身标记为已取消,这可以允许等待第一个任务的任何任务被触发(即任何使用task.ContinueWith()方法排队的任务)。当然,如果主要任务被取消,那么后续任务也很可能也需要被取消。
你完全正确的是,正在执行的实际代码也需要遵守取消令牌。