为什么 TaskFactory.StartNew 会收到一个 CancelToken

本文关键字:一个 CancelToken TaskFactory StartNew 为什么 | 更新日期: 2023-09-27 18:36:10

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

此方法接收取消令牌:

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

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

为什么 TaskFactory.StartNew 会收到一个 CancelToken

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

而且您绝对正确,正在执行的实际代码也需要遵守取消令牌。

相关文章: