Когда именно начинается асинхронная операция при выполнении метода?

Обычный C# async-метод начинает выполнять тело при вызове и работает синхронно до первого await незавершённой операции. await ожидает результат, а не обязательно запускает саму операцию.

Короткий ответ

Что ответить на собеседовании

Обычный C# async-метод начинает выполнять тело при вызове и работает синхронно до первого await незавершённой операции. await ожидает результат, а не обязательно запускает саму операцию.

Подробный разбор

Ответ с пояснениями

Обычный C# async-метод начинает выполнять тело при вызове и работает синхронно до первого await незавершённой операции. await ожидает результат, а не обязательно запускает саму операцию.

Например, вызов HTTP async-метода инициирует запрос согласно его реализации; сохранённый Task можно ожидать позже. Task.Run ставит делегат в пул при вызове, тогда как new Task(...) без Start не запускает его.

Поэтому момент старта определяется API, а не одним наличием слова Task. Async-итератор — отдельный случай: его выполнение связано с перечислением. Если очередной awaitable уже завершён, код проходит этот await без приостановки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее