Вариант 1:
Последовательность. Неважно, с await
или без него, код в методе является последовательным, то есть: первая строка в методе выполняется, а вторая - только после завершения первой и возвращает управление вызывающему методу. Разница между тем, использовать его или нет, заключается в том, что поток, выполняющий ваш метод, будет доступен во время выполнения операции awaited
. Это действительно полезно, если вы имеете дело с другой системой, т.е. с базой данных. Вы могли бы дождаться оператора SELECT
, тем самым предотвращая блокировку потока, выполняющего метод с выбранным им, до тех пор, пока база данных не ответит.
Вариант 2:
параллелизм. Здесь вы последовательно создаете две задачи, а затем await
для завершения всех из них с Task.WhenAll()
Так что это зависит от того, что вы ищете, первый вариант верен, если для вызова второго метода нужно что-то из первого. Если между ними нет зависимости, то вам нужен параллелизм, который достигается с помощью опции 2.