首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么要在调用IsCancellationRequested ()之前检查ThrowIfCancellationRequested()

为什么要在调用IsCancellationRequested ()之前检查ThrowIfCancellationRequested()
EN

Stack Overflow用户
提问于 2021-11-10 09:21:57
回答 2查看 307关注 0票数 5

我经常看到下面的代码,这是第一个视图看起来很好,因为一个视图是用来在做其他事情之前检查一个先决条件的。

但是,当读取方法的名称时,感觉就像前面的if语句已经包含在方法本身中。因此,是否有理由像本例那样编写代码,或者直接跳过if语句并直接运行ThrowIfCancellationRequested

当然,如果在退出之前需要清理,那么我完全理解if -语句的用法。

代码语言:javascript
复制
if (cancellationToken.IsCancellationRequested)
{
    cancellationToken.ThrowIfCancellationRequested();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-10 09:30:33

简而言之:没有理由对两者进行检查。

cancellationToken.ThrowIfCancellationRequested()cancellationToken.IsCancellationRequested是实现相同目标的不同方法。

检查cancellationToken.IsCancellationRequested是取消任务的一种所谓的“软”方式。

设置cancellationToken.ThrowIfCancellationRequested()通常被认为是推荐的选项。

您可以找到有关正确的任务取消这里这里的更多信息。

票数 2
EN

Stack Overflow用户

发布于 2021-11-10 10:59:16

下面是源代码ThrowIfCancellationRequested方法:

代码语言:javascript
复制
public void ThrowIfCancellationRequested()
{
    if (IsCancellationRequested) 
        ThrowOperationCanceledException();
}

很明显,在调用此方法之前检查IsCancellationRequested属性除了将少量电能转换为热外,没有任何用途。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69910645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档