UnobservedTaskException 没有杀死进程

2024-01-26

我试图理解 .NET 4.0 中的 UnobservedTaskException 问题,所以我编写了以下代码

TaskScheduler.UnobservedTaskException += (sender, eventArgs) => Console.WriteLine("unobserved");

Task.Factory.StartNew(() => { throw new Exception(); }, TaskCreationOptions.LongRunning);
using (var autoResetEvent = new AutoResetEvent(false))
{
    autoResetEvent.WaitOne(TimeSpan.FromSeconds(10));
}
Console.WriteLine("Collecting");
GC.Collect();
GC.WaitForPendingFinalizers();

Console.WriteLine("Still working ");
Console.ReadKey();
Console.WriteLine("Still working ");
Console.WriteLine("Still working ");
Console.ReadKey();

UnobservedTaskException 被触发,然后我的应用程序继续工作。然而根据MSDN https://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.unobservedtaskexception(v=vs.100).aspx该进程应该被终止。谁能告诉我为什么?


如果您在仅安装了 .Net 4.0 的计算机上运行此代码,它确实会崩溃。

由于自 4.0 以来的所有 .Net 版本都是就地更新,即使您将应用程序定位为 .Net 4.0,它也将在拥有 .Net 4.0 的计算机上的更高版本上运行。

要在更高版本上运行时获得与 .Net 4.0 相同的行为,您可以将其添加到您的 app.config 文件中(如TaskScheduler.UnobservedTaskException 事件 https://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.unobservedtaskexception(v=vs.110).aspx):

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

UnobservedTaskException 没有杀死进程 的相关文章

  • Nullable 是不可能的,为什么不呢? [复制]

    这个问题在这里已经有答案了 如果这是一个愚蠢的问题 请原谅 我正在尝试更好地理解 Net 中的 Nullable 类型 从我从 Microsoft 源代码 使用 ReSharper 中注意到的内容 我了解到 Nullable 是一个结构 而
  • 当其源是 https uri 时如何使 wpf MediaElement 播放

    在 wpf 独立应用程序 exe 中 我在主窗口中包含了 MediaElement
  • 从另一个 FORM 中取回隐藏的 FORM

    我有两种形式Form1 and Form2 我正在打开Form2 from Form1 on button Click Form2 obj2 new Form2 this Visible false obj2 Show 然后我想回来Form
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • .pdbs 会减慢发布应用程序的速度吗?

    如果 dll 中包含 pdb 程序调试 文件 则行号将出现在引发的任何异常的堆栈跟踪中 这会影响应用程序的性能吗 这个问题与发布与调试 即优化 无关 这是关于拥有 pdb 文件的性能影响 每次抛出异常时都会读取 pdb 文件吗 加载程序集时
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 类中是否可以有虚拟类声明?

    我正在为个人项目中框架的各个组件设置一个接口 我突然想到了一些我认为可能对接口有用的东西 我的问题是这是否可能 class a public virtual class test 0 class b public a public clas
  • 如何调试在发布版本中优化的变量

    我用的是VS2010 我的调试版本工作正常 但我的发布版本不断崩溃 因此 在发布版本模式下 我右键单击该项目 选择 调试 然后选择 启动新实例 此时我看到我声明的一个数组 int ma 4 1 2 8 4 永远不会被初始化 关于可能发生的事
  • C# Winforms Designer 无法打开,因为它无法在同一程序集中找到类型

    我收到以下错误 找不到类型 My Special UserControl 请确保引用包含此类型的程序集 如果此类型是您的开发项目的一部分 请确保已使用当前平台或任何 CPU 的设置成功构建该项目 但没有任何意义的是My Special Us
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 名称查找、实例化点 (POI) 和基本类型

    以下代码针对 X 进行编译 但不适用于 double struct X void foo double void foo X namespace NN struct A void foo A foo double error foo not
  • 如何设置消息队列的所有者?

    System Messaging MessageQueue 类不提供设置队列所有权的方法 如何以编程方式设置 MSMQ 消息队列的所有者 简短的答案是 p invoke 对 windows api 函数的调用MQSetQueueSecuri
  • 从点云检测平面集

    我有一组点云 我想测试3D房间中是否有角落 所以我想讨论一下我的方法 以及在速度方面是否有更好的方法 因为我想在手机上测试它 我将尝试使用霍夫变换来检测线 然后我将尝试查看是否有三条线相交 并且它们也形成了两个相交的平面 如果点云数据来自深
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • 用数组或向量实现多维数组

    我想使用单个数组或向量实现多维数组 可以像通常的多维数组一样访问它 例如 a 1 2 3 我陷入困境的是如何实施 操作员 如果数组的维数为 1 则 a 1 应该返回位于索引 1 处的元素 但是如果维数大于一怎么办 对于嵌套向量 例如 3 维
  • 当 Verb="runas" 时设置 ProcessStartInfo.EnvironmentVariables

    我正在开发一个 C 应用程序 我需要创建变量并将其传递给新进程 我正在使用ProcessStartInfo EnvironmentVariables 新进程必须提升运行 因此我使用 Verb runas var startInfo new
  • 对多个对象使用事件处理程序

    我有 20 件物品List
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request

随机推荐

  • 如何使用 Android 版 Twitter Kit 实现登录屏幕?

    我正在尝试使用新的 Twitter Kit 3 API 在我的自定义 Android 应用程序中实现 Twitter 功能 但我无法使其工作 我只是按照这个例子 https dev twitter com twitterkit androi
  • JQuery mouseup 在窗口外 – 可能吗?

    我正在努力完成一个基本的阻力 在 mousedown 上 项目开始拖动 但速度与鼠标不同 因此当鼠标位于窗口外部时我继续拖动 但如果鼠标不在页面上 我无法获取 mouseup 事件 我可以看到其他页面这样做 所以我知道这是可能的 感谢任何帮
  • Botframework V4:有关输入表单卡的问题

    你好 我有这张输入表格卡 它渲染正确 但我怎样才能得到它的结果 我怎样才能让机器人等待用户提交然后再继续下一步 放入stepContext NextAsync将自动触发下一步 但是删除它会导致错误 因为它需要返回一些东西 public In
  • _.仅当目标对象中存在属性时才分配

    我的需要是执行类似 assign 的操作 但前提是目标对象已经具有正在分 配的属性 可以将其想象为源对象可能具有一些可以贡献的属性 但也有一些我不想混合的属性 我从未使用过 assign 的回调机制 但尝试了以下方法 它 有效 但它仍然将该
  • 计算 constexpr 时抛出异常会发生什么?

    当计算常量表达式来初始化constexpr抛出异常是可能的 例如 下面是一个防止常量表达式的计算溢出的示例 include
  • bin2hex(random_bytes()) 根据输入有多少个字符?

    我使用以下代码为我的应用程序生成一个简单的 UID private function createUid bytes random bytes 128 uid bin2hex bytes return uid 通过这样做 结果是 creat
  • OpenCV Mat 元素类型及其大小

    我对 OpenCV Mat 元素类型感到困惑 这是来自文档 There is a limited fixed set of primitive data types the library can operate on That is ar
  • 获取 AWS S3 存储桶中对象的所有版本?

    我已在存储桶上启用对象版本控制 我想获取该存储桶内密钥的所有版本 但我找不到这样做的方法 如何使用 S3 API 来实现这一目标 所以 今天早上我遇到了这堵砖墙 事实证明 这件看似微不足道的事情做起来非常困难 您想要的 API 是获取桶对象
  • Elasticsearch 中不区分大小写的搜索

    我尝试在 elasticsearch yml 文件中创建一个条目来创建与要点中提到的相同的自定义分析器 https gist github com 1403902 https gist github com 1403902 但我收到以下错误
  • 使用 ReadAsAsync() 反序列化复杂的 Json 对象

    我想在我的 mvc 项目中使用 ReadAsAsync 和 net 4 0 结果为空 如果我在地址栏输入 uri chrome 中的结果为 标签名称已更改
  • 在 Apache 服务器上禁用 OPTIONS HTTP

    Request OPTIONS HTTP 1 1 Host webcat staci com Connection Keep alive Accept Encoding gzip deflate User Agent Mozilla 5 0
  • 是什么让 php 会话保持活动状态?

    会话是否仅在您每次访问页面时保持活动状态session start 或者其他页面也让它保持活力 示例 与30分钟暂停 1 用户通过 session start 访问页面 25 分钟后 他们访问另一个 session start 页面会话保持
  • JOOQ - 相当于用于填充历史字段的休眠拦截器?

    环境 Spring应用程序 使用JOOQ 3 7 从模式自动生成JOOQ映射代码 使用Postgres作为我的数据库 我已经将一些代码从 Hibernate 移植到 JOOQ Hibernate 代码会根据上下文提取一些隐藏的身份验证详细信
  • 单击自定义按钮时获取行数据

    我正在使用免费的 jqgrid 4 14 我需要在我的网格中有一个自定义图像 某种邮件图标 当单击该图像时 它应该打开一个具有表单的模式窗口 其中包含消息中单击行的数据表单字段 还有其他几个字段 如发件人邮件 ID 收件人邮件 ID 和主题
  • 如何在Arduino上将int转换为字符串?

    如何转换 int n 到一个字符串 以便当我通过串行发送它时 它作为字符串发送 这是我到目前为止所拥有的 int ledPin 13 int testerPin 8 int n 1 char buf 10 void setup pinMod
  • “int”的问题

    我是编程新手 所以我想编写一个代码 让我输入一个二维数组 或者在我的例子中是一个矩阵 并随后打印它 include
  • 使用抽象方法覆盖默认接口方法

    我觉得很奇怪 想知道它是否是经常使用的东西 什么时候才能有用呢 public interface InterA Object getInfo throws Exception1 public interface InterB public
  • 为什么我使用 Spring Boot / Spring Social 指南示例获得与 twitter 的空连接?

    我按照 spring io 网站上的说明进行操作 http spring io guides gs accessing twitter http spring io guides gs accessing twitter 而且我没有建立连接
  • 是否可以在.NET 4.0框架上使用TLS1.2发送HttpWebRequest

    我的应用程序连接到 Experian 服务器 Experian 将很快停止支持 TLS 1 0 和 TLS 1 1 所有使用 HTTPS 的连接都必须使用 TLS 版本 1 2 我想对这个问题做一些研究并查看发送HttpWebRequest
  • UnobservedTaskException 没有杀死进程

    我试图理解 NET 4 0 中的 UnobservedTaskException 问题 所以我编写了以下代码 TaskScheduler UnobservedTaskException sender eventArgs gt Console