Task.Run(Action, CancellationToken) 何时抛出 TaskCanceledException?

2024-02-08

根据文档 http://msdn.microsoft.com/en-us/library/hh160373(v=vs.110).aspx Task.Run(Action, CancellationToken) throws TaskCanceledException当任务被取消时。

到底什么时候Task.Run(Action, CancellationToken) throw TaskCanceledException?目前尚不清楚必须满足什么条件才能引发此异常。


似乎存在一些混乱(并且文档可能会产生误导)。

吸入Task.Run方法会never throw TaskCanceledException(至少在当前的实现中)。不像ArgumentNullException and ObjectDisposedException当“操作参数为空”和“与取消令牌关联的 CancellationTokenSource 已释放”时同步抛出。分别。

Task.Run然而返回一个Task可以使用以下方法取消CancellationToken参数(更多关于取消的信息here http://msdn.microsoft.com/en-us/library/dd997364(v=vs.110).aspx)并等待它await task, task.Wait(), task.Result等会抛出一个TaskCanceledException(可能包裹在AggregateException)

Task<int> task = null;
try
{
    task = Task.Run(() => 5, new CancellationToken(true));
}
catch (TaskCanceledException)
{
    Console.WriteLine("Unreachable code");
}

try
{
    int result = await task;
}
catch (TaskCanceledException)
{
    Console.WriteLine("Awaiting a canceled task");
}

如果文档有两部分可能的例外情况,可能会更清楚:

  1. “常规”同步异常(例如ArgumentNullException and ObjectDisposedException)
  2. “async”异步异常只能通过等待返回的任务来抛出(例如TaskCanceledException)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Task.Run(Action, CancellationToken) 何时抛出 TaskCanceledException? 的相关文章

随机推荐

  • 如何为应用程序引擎应用程序设置 vscode Python 调试器?

    按照官方的步骤操作后wiki https code visualstudio com docs python debugging google app engine debugging使用断点启动或设置断点时 我不断收到以下错误 ptvsd
  • 如何从 PHP 列表中随机选择 10 个内容?

    我知道如何选择one数组中的随机项 但是怎么样ten从一组 例如 二十个 项目中随机选择项目 在 PHP 中 让它变得更复杂的是 每个项目实际上都有两部分 文件名和描述 基本上 它适用于每次重新加载时都会显示十个随机图像的网页 该数据的实际
  • 在 Javascript 中分割字符串

    我正在尝试从以下 href 中提取文章 ID MarketUpdate Pricing 9352730 我只想提取字符串末尾的 ID 并使用以下代码 var newsLink this attr href var newsString ne
  • 如何设置 CLion 以使用 waf 作为构建系统

    我正在尝试配置我的 Intellij Clion IDE 以使用 ns 3 由于 ns 3 使用的是 waf 它比我想象的更棘手 并且很高兴听到任何建议 CLion 支持编译数据库 https www jetbrains com help
  • 命令行中的“@”是什么意思?

    将 放在某些内容 例如包含 Java 运行命令的类路径条目的文件的路径 之前有什么效果 我知道这与文件内容有关 但正如您可以想象的那样 尝试在 Google 上搜索它有点困难 我也找不到谈论它的联机帮助页 它在不同的程序中可能意味着不同的事
  • 匿名类型可以从另一个类型继承吗?

    根据 MSDN 文档StringComparer OrdinalIgnoreCase http msdn microsoft com en us library system stringcomparer ordinalignorecase
  • SketchUp 导出带有纹理的 obj - 如何

    Windows 7 64 位 SketchUp Make 13 0 4812 Goal 将 SketchUp skp 模型转换为 obj并使用 Three js 加载到 WebGL Problem sketchup 将模型导出到 obj具有
  • Django Celery 日志记录最佳实践

    我正在尝试让 Celery 日志记录与Django 我已经设置了日志记录settings py转到控制台 这工作正常 因为我正在托管Heroku 在每个模块的顶部 我有 import logging logger logging getLo
  • Angular4:无法读取未定义的属性

    我正在尝试使用他们在网站上提供的教程来学习 angular4 这是代码 hero ts export class Hero constructor public id number public name string 在组件 ts中 im
  • SQL 选择不同的前 2 个

    如果我有一个名为 Part 的表 其中包含列 PartID IDNumber Length 和数据 PartID IDNumber Length 1 Test1 50 2 Test1 60 3 Test2 50 4 Test3 70 如何仅
  • 在不同项目中生成POCO类到具有Entity Framework模型的项目

    我正在尝试使用 VS2010 的 EF4 存储库模式 为此 我通过右键单击实体模型设计器并单击添加代码生成项来使用 POCO 代码生成 然后我选择 POCO 模板并获取我的课程 我希望能够做的是将我的解决方案构建为实体 POCO 类的单独项
  • OS X:在不关闭进程的情况下生成核心转储?

    我知道如何在进程崩溃时在 OS X 上生成核心转储 但我真正需要做的是附加到进程 生成核心转储 然后恢复该进程 而不杀死它 很久以前 也许一年半前 我有 C 代码可以做到这一点 它使用 OS X 内核库连接到一个进程 读取其所有线程状态和内
  • 更改 OpenCV C++ 接口中 Mat 类实例的数据类型

    如何更改用于存储像素的数据类型Mat类实例 例如 使用以下行读取图像后 Mat I imread file 0 我获得了具有类型像素的灰度图像unsigned char 我想将其更改为double 进行转换的最佳方法是什么 我无法找到一个函
  • Spring boot - 多数据库访问(MYSQL)

    我已经花了很长时间来解决我的问题 但找不到适合我的问题的解决方案 我需要顺序访问不同的数据库 我尝试更改数据库的链接 如下面的代码所示 public static void changeDB String dbname throws IOE
  • 用户名和密码可以通过 URL 参数通过 HTTPS 安全发送吗?

    昨天 我和一位同事就通过 URL 参数发送登录凭据作为身份验证手段是否安全进行了激烈的争论 他正确地指出 HTTPS 在向服务器端发送请求之前会加密 URL 中的所有非主机名 端口字符 然而 我仍然认为这里存在一些边缘情况 可以窃取这些凭据
  • 已弃用 GCC 标头搜索路径

    我发现了一个不寻常的 C makefile 设置 它依赖于 GCC 的一个已弃用的功能 该功能似乎没有现代替代品 该系统需要在包含本地头文件之前对其进行预处理或 烹饪 makefile 会处理这个问题 并将煮熟的版本放在本地 prepare
  • hapi fhir 弹性搜索如何配置

    我正在使用 hapi fhir v5 1 0 和 jpa 服务器 hapi fhir jpa server starter 根据描述 该版本包含用于文本搜索的弹性搜索库 我如何在这里配置弹性服务器 我看到一些条目properties文件并配
  • 让形状始终位于首页

    我正在为 Word 开发 VSTO 应用程序加载项 希望使形状始终位于首页的固定位置 有没有办法在不主动监视形状状态的情况下做到这一点 也欢迎回答 这是不可能完成的 并解释清楚原因 如果您将形状放入页眉并选中 DifferentFirstP
  • Joomla 的 ASP.NET 版本 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Task.Run(Action, CancellationToken) 何时抛出 TaskCanceledException?

    根据文档 http msdn microsoft com en us library hh160373 v vs 110 aspx Task Run Action CancellationToken throws TaskCanceledE