簡體   English   中英

ContinueWith不處理異步回調嗎?

[英]Does ContinueWith not handle Async callbacks?

我看到斯蒂芬克萊里的博客關於Startnew是危險的繼續是多么危險 我想在這里使用它來避免最后只是為了在異常情況下調用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 lambdas。 除了傳遞任務調度程序之外,您還需要使用Unwrap

我想在這里使用它來避免最后只是為了在異常情況下調用NSubstitute而嘗試編寫。

我不明白這個要求。 為什么這不起作用?

await Task.Delay(10);
await Task.Run(() => { throw new Exception(); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM