如果之前已取消,则不会继续运行

时间:2013-12-04 09:38:28

标签: c# .net-4.0 task-parallel-library

希望这是一个简单的问题。我有这行代码:

Task operation = Task.Factory.StartNew(() => this.Start(arg), m_token.Token)
    .ContinueWith((previous) => Completed(previous, arg), TaskScheduler.FromCurrentSynchronizationContext());

arg对象包含CancellationToken。

如果我取消任务(我确认它被取消),则根本不会调用Completed方法。不知道这里发生了什么,我做错了什么。

也许这很重要:我正在使用Enterprise库异常处理块来包装所有异常。但是当Start抛出异常时,一切正常;完成被称为。

1 个答案:

答案 0 :(得分:0)

  

返回的任务将不会被安排执行,直到   当前任务已完成。如果通过指定的标准   continuationOptions参数不符合,延续任务将   取消而不是预定。

详见here