Скажу, у меня есть метод, который вызывает другой метод асинхронного сразу или аналогичный:Действительно ли для асинхронного метода сквозного доступа нужен шаблон ожидания/асинхронизации?
//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);
всех этих заявлений будет компиляции. Будет ли компилятор генерировать разные ИЛ для двух разных методов?