Максим Фроловcard.quoted4 күн бұрын
Компилятор не делит код на разные методы, а создает единый метод, реа­лизующий конечный автомат, который отслеживает текущее состояние с помощью переменной и использует большой оператор switch для запуска нужного фрагмента кода.

• Вместо ContinueWith компилятор использует внутренний объект, так называемый awaiter. Я же использовал метод ContinueWith в примере, потому что он концептуально похож, и если вы не собираетесь писать свой компилятор или свою поддержку асинхронного выполнения для .NET, то помнить об этом совершенно необязательно.

• На самом деле инструкция await делает гораздо больше, чем ContinueWith, — она не только запускает обратный вызов после завершения задачи, как это делает ContinueWith, но и выполняет ряд дополнительных полезных действий, о которых мы поговорим позже в этой книге.
  • Комментарий жазу үшін кіру немесе тіркелу