我不是悄悄吞下异常的忠实拥护者,但下面的代码正是这样做的:
Task.Run(() =>
{
var obj = DoSomethingCpuIntensive(); // returns null, due to a bug
obj.DoMoreStuff();
Console.WriteLine("after"); // never get here; program continues running
});
我已经阅读了有关ThrowUnobservedTaskExceptions配置值的信息,但这并没有帮助,因为我从未对Task
返回的内容做任何事情(编辑:实际上它确实有帮助,但仅在发布版本中)。
有没有办法让这个未处理的异常使程序崩溃?我是否以Task.Run
不应该的方式使用?