要将任务置于已取消状态,任务应在取消时始终抛出OperationCanceledException
。否则任务继续不起作用,对吧?
那你为什么在互联网上找到很多例子,只检查IsCancellationRequested
的{{1}}标志并死于沉默。
总是抛出OperationCancelledException 是最佳做法,还是在某些特殊情况下只检查CancellationToken
标志并结束任务而不抛出OperationCancelledException是合法的?
答案 0 :(得分:3)
我想说推荐的用法是拨打ThrowIfCancellationRequested method的CancellationToken struct。这将测试是否已请求取消并且已经请求OperationCanceledException取消。