С точки зрения производительности, будут ли эти два метода выполнять GetAllWidgets() и GetAllFoos() параллельно?
Есть ли причина использовать один из них? другой? Кажется, что за кулисами компилятора происходит многое, поэтому мне это непонятно.
Метод A: использование нескольких ожиданий
public async Task MethodA()
{
var customer = new Customer();
customer.Widgets = await _widgetService.GetAllWidgets();
customer.Foos = await _fooService.GetAllFoos();
return Ok(customer);
}
MethodB: использование Task.WaitAll
public async Task MethodB()
{
var customer = new Customer();
var getAllWidgetsTask = _widgetService.GetAllWidgets();
var getAllFoosTask = _fooService.GetAllFos();
Task.WaitAll(new List[] {getAllWidgetsTask, getAllFoosTask});
customer.Widgets = getAllWidgetsTask.Result;
customer.Foos = getAllFoosTask.Result;
return Ok(customer);
}
Подробнее здесь: https://stackoverflow.com/questions/321 ... equivalent