5
比方說,我有一個立即調用另一個異步方法類似的方法或:傳遞異步方法是否真的需要await/async模式?
//Main method
public async Task<int> Foo1(int x)
{
var result = await DoingSomethingAsync(x);
return DoSomethingElse(result);
}
//other method
public async Task<int> Foo2(Double double)
{
return await Foo1(Convert.ToInt32(double));
}
是否有任何具體的原因,Foo2
需求/應該有異步/ AWAIT,而不是簡單地調用:
//other method
public Task<int> Foo3(Double double)
{
return Foo1(Convert.ToInt32(double));
}
在消費者,這仍然會等待,likeso,不管:
int x = await Foo1(1);
int x = await Foo2(1D);
int x = await Foo3(1D);
所有這些語句會編譯。編譯器會爲兩種不同的方法生成不同的IL嗎?