Один поток на action [закрыто]

199
08 декабря 2016, 22:43

Читал на хабре статью про async/await и наткнулся на следующую строчку:

Несмотря на то, что в ASP.NET нет выделенного UI потока, код в action-ах контроллеров не может выполняться более чем одним рабочим потоком одновременно.

Исходя из этой строчки у меня возникают вопросы:

  1. Зачем так ограничивать action?
  2. Как это реализовано внутрях? lock в ActionInvoker'е?
Answer 1

Вы просто не совсем правильно поняли мысль, котору пытался донести автор статьи. Он не пытался сказать, что один конкретный метод Action не может выполняться в нескольких потоках - ведь достаточно очевидно, что это не так.

Если у вас пришел десяток одновременных HTTP-запросов на один и тот же Action - то это Action будет выполняться одновременно в 10 разных потоках. Никаких блокировок там нет.

Автор статьи на хабре имел ввиду, что один конкретный запрос - один конкретный вызов Action для обработки конкретного запроса - будет выполняться одним конкретным рабочим потоком, к которому при этом будет привязан HttpContext этого самого запроса.

READ ALSO
Linq Left Join: Можно ли оптимизировать linq запрос?

Linq Left Join: Можно ли оптимизировать linq запрос?

Мне необходимо показать пользователю представление, информация для отображении находится в разных таблицах

247
C# XNA как узнать разрешение экрана/окна

C# XNA как узнать разрешение экрана/окна

Нужно узнать текущие разрешение экрана(для полно экранного режима) и отдельно нужно узнать разрешение окна(оконный режим) Есть какие либо...

441
Вызов метода класса по имени

Вызов метода класса по имени

Необходимо вызывать методы класса по имени (те

219
ContextMenuStrip, как отловить закрытие

ContextMenuStrip, как отловить закрытие

Вот так создаю меню правой кнопки мыши над DataGridView :

197