相关疑难解决方法(0)

当Task有未处理的异常时,为什么我的进程不会终止?

我正在使用.NET 4.0构建Windows服务.

我在任务中抛出了各种未处理的异常,但它们不会像MSDN文档所述那样终止我的进程(并行任务 - 请参阅未观察到的任务异常).

"如果您没有给故障任务提供传播其异常的机会(例如,通过调用Wait方法),那么当任务被垃圾收集时,运行时将根据当前的.NET异常策略升级任务的未观察异常. ".

即使我使用最简单的任务调用,它的行为也是如此:

Task.Factory.StartNew(() => { throw new Exception(); } 
Run Code Online (Sandbox Code Playgroud)

调用该服务时,该服务保持正常运行.

根据文档,任务的终结器将在任务为GC后重新抛出异常,但这似乎不会发生.MSDN反复声明,正常的".NET异常策略"会导致进程终止.

为什么不终止我的应用程序?我能想到的唯一一件事就是以某种方式提到某个地方的任务(是lambda ??)

.net .net-4.0 task-parallel-library

15
推荐指数
3
解决办法
4902
查看次数

标签 统计

.net ×1

.net-4.0 ×1

task-parallel-library ×1