希望这是一个简单的问题。我有这行代码:
Task operation = Task.Factory.StartNew(() => this.Start(arg), m_token.Token)
.ContinueWith((previous) => Completed(previous, arg), TaskScheduler.FromCurrentSynchronizationContext());
arg对象包含CancellationToken。
如果我取消任务(我确认它被取消),则根本不会调用Completed方法。不知道这里发生了什么,我做错了什么。
也许这很重要:我正在使用Enterprise库异常处理块来包装所有异常。但是当Start抛出异常时,一切正常;完成被称为。
答案 0 :(得分:0)
返回的任务将不会被安排执行,直到 当前任务已完成。如果通过指定的标准 continuationOptions参数不符合,延续任务将 取消而不是预定。
详见here。