Выбор ответа Middle ASP.NET Core обновлено

Use, Run и Map

Вопрос

Чем app.Run(...) отличается от app.Use(...)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Run терминальный, без next; Use может передать дальше. app.Use получает контекст и делегат next и может вызвать следующий шаг. app.Run(handler) добавляет терминальный обработчик: всё, что зарегистрировано после него, не выполнится. app.Run() без аргументов запускает хост, это другая перегрузка.

Варианты ответа

  1. Run запускает приложение, а Use регистрирует middleware
  2. Run выполняет обработчик в отдельном потоке из пула
  3. Run терминальный, без next; Use может передать дальшеправильный ответ
  4. Разницы нет: это синонимы, оставленные для совместимости

Разбор

app.Use получает контекст и делегат next и может вызвать следующий шаг. app.Run(handler) добавляет терминальный обработчик: всё, что зарегистрировано после него, не выполнится. app.Run() без аргументов запускает хост, это другая перегрузка. Map ветвит конвейер по пути. Никаких отдельных потоков нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.