Таска в async/await всегда выполняется в одном потоке или может в разных?

Async-операция может продолжаться на разных потоках после разных await. Task описывает завершение работы, а не закрепляет её за одним потоком.

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

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

Async-операция может продолжаться на разных потоках после разных await. Task описывает завершение работы, а не закрепляет её за одним потоком.

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

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

Async-операция может продолжаться на разных потоках после разных await. Task описывает завершение работы, а не закрепляет её за одним потоком.

Одна последовательная async-функция не начинает сама по себе исполнять две части тела одновременно: следующий участок продолжается после завершения ожидаемой операции. Но у него может быть другой thread ID.

UI SynchronizationContext способен возвращать продолжения в UI-поток; на сервере такой привязки обычно нет. Если задача уже завершена, await может не переключить поток вообще. Параллельность появляется при явном запуске нескольких операций, а не от каждого отдельного await.

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

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

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

Подробнее