【发布时间】:2015-02-17 16:40:59
【问题描述】:
考虑this Task.Run example。它显示了如何创建具有取消支持的任务。
我正在做类似的事情:
Task.Run(()=>{while (!token.IsCancellationRequested()) {...}}, token);
我的问题:
既然我已经有了对取消令牌的引用,为什么要将它作为参数传递给
Task.Run调用?-
我经常在示例中看到如下代码:
if (token.IsCancellationRequested) token.ThrowIfCancellationRequested();
这段代码的目的是什么?为什么不只是 return 来自方法?
【问题讨论】:
-
我只是想回答,但 Sriram 的回答涵盖了它。但是您不必使用
if (token.IsCancellationRequested) ...,因为ThrowIfCancellationRequested已经检查过了。 -
@Dirk 我刚刚也提到了:)