簡體   English   中英

如何通過另一個任務返回一個異步任務?

[英]How do I return an async Task through another one?

我有兩種異步方法,如下所示:

protected async Task<bool> DoSomething(byte[] data) {
    await System.Console.Out.WriteLineAsync("Do things.");
    Data refinedData = Data.fromByteArray(data);
    return DoSomething(refinedData); // Compiler error!
}

protected async Task<bool> DoSomething(Data data) {
    /* Do way more interesting things with data now that it's our type! */
    return true;
}

我想做的是不必在我的第一個return語句中使用await ,而只需傳遞到DoSomething的第二個覆蓋。 我是否可以在第二個覆蓋的返回上調用一個特殊的方法,以延遲其生成的Task實例,或者可以/應該使用的特定語言機制?

您應該從第一個方法簽名中刪除async關鍵字,或者應該在返回之前使用await關鍵字。

return await DoSomething(refinedData);

暫無
暫無

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

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