我有两个异步方法如下:如何通过另一个返回异步任务?
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;
}
我希望做的是没有使用await
我的第一个return语句,而是仅仅通过给DoSomething
第二个覆盖。有没有一种特殊的方法,我可以调用返回的第二个覆盖,以推迟生成的实例,或者我可以/应该使用的特定语言机制?
我得到一个编译错误说,第一种方法必须返回'bool'不'任务'。 –
从第一个方法签名中删除async关键字,你应该没问题。 –
这是唯一的解决方案,还是有办法解决这个问题,而不会失去在这些覆盖类型中使用'await'的能力? –