繁体   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