Jam*_*aug 9 c# asynchronous async-await c#-5.0
假设我有一个方法可以立即或类似地调用另一个异步方法:
//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 ) );
}
Run Code Online (Sandbox Code Playgroud)
是否存在Foo2需要/应该具有异步/等待的特定原因,而不是简单地调用:
//other method
public Task<int> Foo3( Double double )
{
return Foo1( Convert.ToInt32( double ) );
}
Run Code Online (Sandbox Code Playgroud)
在消费者中,无论如何,这仍然是等待的,不管:
int x = await Foo1(1);
int x = await Foo2(1D);
int x = await Foo3(1D);
Run Code Online (Sandbox Code Playgroud)
所有这些陈述都将汇编.编译器会为两种不同的方法生成不同的IL吗?