我有一个异步方法,看起来大约像这样:
async Task<int> ParseStream()
{
var a = await reader.ReadInt32();
var b = await reader.ReadInt32();
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
由于数据已经准备好,因此该方法在大多数情况下都会同步工作。因此,用 ValueTask 替换返回类型以减少分配似乎是个好主意。但这会调用reader.ReadInt32()return Task。
所以问题是:从内部等待某些任务的方法返回 ValueTask 是否有意义?