【发布时间】:2016-03-14 01:53:58
【问题描述】:
在运行下面的测试方法时,我发现即使我等待一个抛出异常的任务,测试也通过了。此外,会弹出一个单独的窗口,显示“QTAgent.exe 已停止工作”。这表明异常不会传播到运行测试的线程,而是杀死一个单独的线程。
我想知道为什么会这样。另外,由于这似乎没有按预期工作,我应该如何在线程池线程上运行异步方法?
请注意,如果我将其更改为 func 不是异步的,则会按预期在测试线程中引发异常。
[TestMethod]
public async Task TestWeirdTaskBehavior()
{
Action func = async () =>
{
await Task.Delay(0);
throw new InvalidOperationException();
};
await Task.Run(func);
}
【问题讨论】:
标签: c# asynchronous