[英]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.