Цель урока - разобраться в том, что представляют собой ключевые слова async/await, рассмотреть их техническую реализацию, чтобы лучше понимать, как работает ваш асинхронный код. Освежим в памяти теоретические знания о законченном автомате (state machine) и рассмотрим пример, сгенерированный компилятором. Также мы познакомимся с типами, которые могут возвращать асинхронные методы и разберем на примерах, как и когда ими следует пользоваться. Познакомимся с контекстом выполнения и контекстом синхронизации, посмотрим, как они используются в асинхронном конечном автомате.