ASP.NET MVC 2 Вопрос об асинхронном контроллере - PullRequest
2 голосов
/ 10 июня 2010

Мне интересно одно - предположим, что пользователь нажимает кнопку, и вызывается действие асинхронного контроллера. Что происходит, когда асинхронное действие занимает, например, 10 секунд? Пользователь должен ждать 10 секунд, чтобы просмотреть результат действия? Если да, действительно ли полезны асинхронные контроллеры?

1 Ответ

4 голосов
/ 10 июня 2010

Да. Пользователь должен будет ждать ответа в течение 10 секунд - хотя, если у вас есть длительное действие, вы хотите вызвать его через AJAX со страницы, отображаемой с помощью другого, более короткого действия.

Значение асинхронного контроллера в том, что он не блокирует другие запросы в том же потоке во время выполнения работы. Поскольку у вас есть только ограниченное количество потоков, вполне возможно, что все они могут оказаться заблокированными при запросах к этому действию. Если это произойдет, то сервер не сможет обслуживать любые запросы. Использование асинхронного контроллера позволяет возвращать поток в пул потоков, когда асинхронная операция (ожидание в сети или ввод / вывод) завершается.

См. Это обсуждение на MSDN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...