Требуется ли Task.Wall для примера кода?

В следующем коде task1 и task2 не зависят друг от друга и могут работать параллельно. В чем разница между следующими двумя реализациями?

var task1 = GetList1Async();
var task2 = GetList2Async();

await Task.WhenAll(task1, task2);

var result1 = await task1; 
var result2 = await task2; 

а также

var task1 = GetList1Async();
var task2 = GetList2Async();

var result1 = await task1; 
var result2 = await task2; 

Почему я должен выбирать один над другим?

Изменить: я хотел бы добавить, что возвращаемый тип методов GetList1Async () и GetList2Async () различаются.

Ответы на вопрос(2)

Ваш ответ на вопрос