在 Task.Run 中使用 CancellationToken 超时不起作用[重复]

2024-02-04

好吧,我的问题很简单。为什么这段代码不抛出TaskCancelledException?

static void Main()
{
    var v = Task.Run(() =>
    {
        Thread.Sleep(1000);
        return 10;
    }, new CancellationTokenSource(500).Token).Result;

    Console.WriteLine(v); // this outputs 10 - instead of throwing error.
    Console.Read();
}

但这有效

static void Main()
{
    var v = Task.Run(() =>
    {
        Thread.Sleep(1000);
        return 10;
    }, new CancellationToken(true).Token).Result;

    Console.WriteLine(v); // this one throws
    Console.Read();
}

托管线程中的取消 http://msdn.microsoft.com/en-us/library/vstudio/dd997364(v=vs.110).aspx:

取消是合作性的,不会强迫听众。侦听器确定如何优雅地终止以响应取消请求。

你没有在你的里面写任何代码Task.Run方法来访问您的CancellationToken并实施取消 - 因此您实际上忽略了取消请求并运行完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Task.Run 中使用 CancellationToken 超时不起作用[重复] 的相关文章

  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 使用 C# 和 ASP.NET 在电子邮件附件中发送 SQL 报告

    我正在尝试使用 ASP NET 和 C 从 sql reportserver 2008 作为电子邮件附件发送报告 到目前为止我学会了如何获取 PDF 格式的报告 http weblogs asp net srkirkland archive
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • 包恢复失败。回滚包更改 - Serilog.AspNetCore

    我有一个 asp net Core 项目 我正在尝试向其中添加一个记录器 我选择了我在其他项目中使用过的 SeriLog 但是当我尝试添加 Serilog AspNetCore 我得到的软件包版本 2 0 0 包恢复失败 回滚 后端 的包更
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • 我们可以通过指针来改变const定义的对象的值吗?

    include
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • C:设置变量范围内所有位的最有效方法

    让我们来int举个例子 int SetBitWithinRange const unsigned from const unsigned to To be implemented SetBitWithinRange应该返回一个int其中所有
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助
  • .Net Reactive Extensions Framework (Rx) 是否考虑拓扑顺序?

    Net 反应式扩展框架是否按拓扑顺序传播通知以最大限度地减少更新量 就像 Scala Rx 所做的那样 Net 反应式扩展 Rx 是否可以 https github com lihaoyi scala rx wiki How it Work
  • 如何在 C# 中获取 CMD/控制台编码

    我需要指定正确的代码页来使用 zip 库打包文件 正如我所见 我需要指定控制台编码 在我的例子中为 866 C Users User gt mode Status for device CON Lines 300 Columns 130 K

随机推荐

  • PHPUnit的白名单和黑名单似乎被忽略

    我正在一个项目上设置 PHPUnit 该项目的结构如下 build src service PHP source code files here tests php unit PHP unit tests here bootstrap ph
  • 文本对齐中心 - shell 脚本

    我正在使用 shell 脚本创建一个基于控制台的简单脚本 它将在我的 bash shell 上运行 它是一个简单的基于菜单的驱动显示一些选项集 现在我想根据屏幕尺寸将文本居中对齐 如何将文本对齐到屏幕中央 请帮助我 最后我找到了解决方案 C
  • 在导航栏中添加自定义视图,例如whatsapp

    我想创建自定义导航栏 就像 WhatsApp 用来在应用程序中显示呼叫指示器一样 如下所示 我已成功添加如上所述的视图 但它没有响应 因为我无法检测到状态栏上的触摸 我只能触摸 触摸返回通话 下面的部分 代码如下 property nona
  • 模拟乘法加法的算法

    如何设计一种算法来模拟乘法加法 输入两个整数 它们可能为零 正数或负数 def multiply a b if a 1 return b elif a 0 return 0 elif a lt 0 return multiply a b e
  • XML 注释和“--”

    偶数个 s 似乎也无效 如果它是一些历史特征 那么它的 专业 部分是什么 反对 部分是无法拥有 在评论中 不以 gt 作为注释结尾并允许在内部添加 从而使注释处理复杂化的原因是什么 也许这对某人有帮助 我遇到了一个问题 我想注释掉 XML
  • 保护 EC2 Amazon Marketplace AMI 上的文件夹安全

    我计划创办一家小型企业并向 Amazon 的 AWS Marketplace 提交 Linux AMI 当我阅读卖家指南时 我看到了这一点 AMI 必须允许操作系统级管理功能 以实现合规性要求 漏洞更新和日志文件访问 对于基于 Linux
  • PHP根据.gitignore过滤文件和路径

    我想使用 PHP 读取 gitignore 配置忽略的所有文件和路径 就像 git 的做法一样 可以重复读取目录并对每个文件使用正则表达式进行过滤 但如果路径中的文件过多 则效果不佳 有什么好的和最有效的方法来读取 gitignore 忽略
  • 登录 SQL Server 时出错

    当我想要连接到 SQL Server 2008 时 我收到以下消息 无法连接到服务器 附加信息 无法打开用户默认数据库 登录失败 用户 sa 登录失败 微软 SQL Server 错误 4064 我该如何解决这个错误 这个错误 Micros
  • 在ormlite android中使用DataType.SERIALIZABLE存储对象列表

    如何在android中使用ORMlite保存ArrayList我的模型如下 class Model DatabaseField public String type DatabaseField public String name Data
  • System.Delegate System.Reflection.MethodInfo.CreateDelegate(System.Type)

    据我所知 这个错误在过去曾发生过 当时 Ninject 和站点包的目标是 4 x 并且彼此不匹配 我检查了我的机器 它们匹配 都是 4 0 我确实花了一些时间更新项目中的所有 Nu Get 包 在此之前 并没有出现过这个错误 我怎样才能消除
  • 为什么我的查询返回的结果很多?

    我有一群候选人 他们都做过一份或多份工作 每个人都有一家公司 使用一些技能 糟糕的 ASCII 艺术如下 candidate 1 candidate 2
  • Dapper 是否支持 SQL 2008 表值参数 2?

    我知道 dapper 可以支持 TVF 但是如何随 TVF 一起发送额外的参数 而不将其添加到 IntDynamicParam 类中 请参阅 Tests cs 中的以下示例 我已修改以添加额外参数 connection Execute CR
  • Angular 13:无法在浏览器中看到 Jasmine 测试

    我有一个新的 Angular 项目 其中每个测试都完成 但它们不会在业力窗口中显示任何内容 我的组件没有 预览 与描述的非常相似在这个问题中 https stackoverflow com questions 55521855 list o
  • 用于命令行构建的 MSBuild 与 devenv

    我想知道 从命令行编译解决方案时使用 msbuild 和 devenv 有什么区别 注意到的一件明显的事情是 msbuild 确实构建了解决方案中未包含的依赖项目 而 devenv 则不然 还有其他的吗 是否有一些特殊标志可以传递给 msb
  • Keras + mnist + 测试自己的图像。错误的预测

    通过测试 mnist 自己的测试图像 它工作得很好 但是一旦我使用来自外部 mnist 的图像 它就会预测错误 我什至尝试从 mnist 数据集中复制其中一张图像 但它仍然无法预测正确的数字 即使在 mnist 数据集中完全相同的图像是可以
  • 如何在 postgresql 中基于 wCTE 的 upsert 中获取表的受影响行数?

    我需要你的帮助 我有一个包含 n 次插入和更新循环操作的查询 我决定使用 UPSERT 因为它不需要循环操作 ex WITH upsert AS UPDATE employee table SET rollno input rollno n
  • didRegisterForRemoteNotificationsWithDeviceToken - 推送通知

    我只是想确认 didRegisterForRemoteNotificationsWithDeviceToken 是指每次应用程序加载时都会调用 并且我的 PHP 服务器或应用程序需要处理是否重新提交以存储在我的数据库中 或者我缺少什么 谢谢
  • 如何改变图像的大小?

    我正在创建一款太空入侵者游戏 我希望所有图像都与屏幕分辨率成比例 这意味着它可以在所有屏幕尺寸上使用 并且所有图像都会缩小或变大 以便适合屏幕 游戏是全屏的 做到这一点最简单的技术是什么 这也是设置所有内容大小的最佳方法吗 你看过吗图像 g
  • Fedora 中的 Arduino 上传错误“stk500_recv(): 程序员没有响应”

    我正在尝试上传库存Blink在 Fedora Core 15 Linux 中使用 Arduino IDE 绘制草图 我收到此错误 avrdude stk500 recv 程序员没有响应 要重现该问题 通过 USB 线插入 Arduino U
  • 在 Task.Run 中使用 CancellationToken 超时不起作用[重复]

    这个问题在这里已经有答案了 好吧 我的问题很简单 为什么这段代码不抛出TaskCancelledException static void Main var v Task Run gt Thread Sleep 1000 return 10