CancellationToken.CanBeCanceled
上的文档描述了它的作用,但未提及它何时可能是错误的。因此,当我应该注意这个属性时,我并不完全清楚。
在哪种情况下它可能是错误的,何时应该看它?
答案 0 :(得分:9)
好吧,CancellationToken.None会返回一个不可取消的内容。
如果您是坚持收到CancellationToken的API的用户,但您没有兴趣尝试取消该工作,那么您可以将此令牌传递给它。
当某人构建 API时,如果CanBeCancelled返回false,您可以进行某些优化 - 也许您检查IsCancellationRequested属性是“昂贵的”。
答案 1 :(得分:0)
例如,当async方法的“整个”代码是远程机器(例如服务器)上的调用方法时,无法取消(远程机器不提供任何方式,如何取消它)。然后该任务无法取消 - >任务只能完成(或抛出异常)。