ContinueWith 不处理异步回调吗?
Does ContinueWith not handle Async callbacks?
我看到了 Stephen Cleary 关于 Startnew being dangerous and how continuewith is also dangerous 的博客。我想在这里使用它来避免在出现异常的情况下不得不编写 try finally 来调用 NSubstitute。我发现测试在不应该通过的时候通过了,然后注意到抛出了异常,但它没有通过测试以向 nunit 发出信号。
ContinueWith 在异步函数方面是否与 Task.Startnew 类似?我注意到这个简化的等效项不会在 Nunit 3 中抛出内部异常。
[Test]
public async Task SimpleTest()
{
await Task.Delay(10).ContinueWith( async t =>
{
await Task.Run(()=>{throw new Exception();});
});
}
ContinueWith
不理解 async
lambda。除了传递任务计划程序之外,您还需要使用 Unwrap
。
I wanted to use it here to avoid having to write a try finally just to make a call to NSubstitute in the case of an exception.
我不明白这个要求。为什么这行不通?
await Task.Delay(10);
await Task.Run(() => { throw new Exception(); });
我看到了 Stephen Cleary 关于 Startnew being dangerous and how continuewith is also dangerous 的博客。我想在这里使用它来避免在出现异常的情况下不得不编写 try finally 来调用 NSubstitute。我发现测试在不应该通过的时候通过了,然后注意到抛出了异常,但它没有通过测试以向 nunit 发出信号。
ContinueWith 在异步函数方面是否与 Task.Startnew 类似?我注意到这个简化的等效项不会在 Nunit 3 中抛出内部异常。
[Test]
public async Task SimpleTest()
{
await Task.Delay(10).ContinueWith( async t =>
{
await Task.Run(()=>{throw new Exception();});
});
}
ContinueWith
不理解 async
lambda。除了传递任务计划程序之外,您还需要使用 Unwrap
。
I wanted to use it here to avoid having to write a try finally just to make a call to NSubstitute in the case of an exception.
我不明白这个要求。为什么这行不通?
await Task.Delay(10);
await Task.Run(() => { throw new Exception(); });