Затраты и производительность влияют на тот факт, что каждый метод, помеченный как асинхронный, передается за сцену в машину состояний;так что больше примеров кода и машины состояний, о которых нужно позаботиться.
Вы можете избежать машины состояний с перезаписью, как здесь ниже;вам не нужно ждать, если после этого оператора нет кода, просто верните задание, как описано в методе A2 ниже.
public Task<IHttpActionResult> ControllerMethod()
{
return A1();
}
public async Task<R1> A1()
{
var result = await A2();
if (result != null)
{
A3()
}
return result;
}
public Task<R1> A2()
{
return A4();
}
public void A3()
{
// call to another async method without await
}