2012-11-08 4 views
0

Я немного новичок в ASP.NET MVC, после поиска у меня все еще есть одна вещь, которую я не понимаю. Зачем нужен асинхронный контроллер? Поскольку каждый HTTP-запрос приведет к созданию нового экземпляра контроллера, чтобы сервер не блокировал какой-либо запрос, тогда зачем нужен асинхронный контроллер?Зачем нужен асинхронный контроллер в ASP.NET MVC?

+0

Скорее всего, если вы не имеете дело с сервером, который получает много запросов (например, SO), вы не увидите слишком много преимуществ для его предотвращения блокировки. –

+0

Благодарим вас за это, что мне делать с этим, удалите его? – Shuping

+0

Вы можете закрыть свой собственный вопрос. – Marijn

ответ

0

Все точки контроллеров Async предназначены для освобождения потоков IIS при длительных операциях. Нити IIS извлекаются из пула потоков .NET. Максимальное количество потоков пулов потоков зависит от конфигурации вашей системы (на моем ядре-2-quad это 1023). Это означает, что длительные операции будут потреблять один из этих потоков. Когда будет достигнуто максимальное число, дополнительные запросы, возможно, придется ждать, пока один из них не будет освобожден. Сформулировать это очень четко: если у вас есть 1023 действия, выполняющие длинные запросы на опрос, ваш веб-сайт перестает отвечать на дополнительные запросы.

Когда вы используете контроллеры Async, вы можете создавать потоки вне пула потоков и, таким образом, обойти это максимальное ограничение потоков.

+0

Танки, теперь я понял. – Shuping

Смежные вопросы