будет ли второй ждать завершения первого?
Да. Любой код ниже первого ждут:
await Task.Run(() => Method());
будет ждать , пока выполнение не завершится.
Может кто-нибудь сказать мне, если есть разница ...
В вашем упрощенном примере, в основном, нет разницы. У вас есть метод async
, который выполняется внутренне синхронно и последовательно.
Если вы хотите, чтобы за это время выполнялась любая другая работа, вы можете установить ожидание чуть позже:
protected override async void OnStart()
{
Task methodTask = Task.Run(() => Method());
// do anything here while the Task runs
await methodTask; // wait here so that CheckScore() is not started yet
await Task.Run(() => PointChecker.CheckScore());
}
Я думал, что использование Await позволит OnStart () завершить работу, чтобы пользовательский интерфейс мог обновляться.
, поскольку вы объявили OnStart
как `async´, он не заблокирует пользовательский интерфейс, который будет реагировать. Поскольку у вас нет возвращаемых значений и нет кода обновления в вашем примере. Это так далеко, что мой ответ может пойти без принятия слишком много.