Async Await - artemovsergey/ASP GitHub Wiki
Async Await
Ключевое слово await - это мощный синтаксический сахар, который указывает компилятору C# разделить метод. Под капотом C# видит await client.GetStreamAsync(); он помещает код до этого вызова включительно в один блок, а код после него - в другой блок, который вызывается после завершения работы await. Ключевое слово async необходимо для того, чтобы указать компилятору (и разработчикам, которые смотрят на код), что метод имеет awaits и разделен на части. (Метод client.GetStreamAsync возвращает объект Task, и ожидание на нем означает, что наш код возобновится, когда будет получен HTTP-ответ. Поток, выполнявший наш код, может работать над чем-то другим.