【问题标题】:Why does TaskFactory.StartNew receive a CancellationToken [duplicate]为什么 TaskFactory.StartNew 会收到 CancellationToken [重复]
【发布时间】:2012-06-02 15:43:30
【问题描述】:

可能重复:
Cancellation token in Task constructor: why?

此方法接收一个 CancellationToken:

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

既然取消是合作的(实际工作的代码需要观察取消令牌),把这个作为参数传递给StartNew方法的目的是什么?

【问题讨论】:

    标签: c# .net task-parallel-library task cancellation-token


    【解决方案1】:

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

    您说得对,正在执行的实际代码也需要遵守取消标记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      相关资源
      最近更新 更多