为什么ASP.NET MVC需要异步控制器?

时间:2012-11-08 13:39:18

标签: asp.net-mvc

我对ASP.NET MVC有点新,搜索后我还有一件事情不明白。为什么需要异步控制器?由于每个HTTP请求都会导致服务器创建一个新的控制器实例,因此服务器不会阻止任何请求,那么为什么需要一个异步控制器呢?

1 个答案:

答案 0 :(得分:0)

异步控制器的重点是在执行长操作时释放IIS线程。 IIS线程从.NET线程池中提取。线程池线程的最大数量将根据您的系统配置而变化(在我的core-2-quad上它是1023)。这意味着长操作将消耗其中一个线程。达到最大数量时,其他请求可能必须等待一个请求被释放。说得非常清楚:如果您有1023个操作执行长轮询请求,您的网站将停止响应其他请求。

使用异步控制器时,可以在线程池外创建线程,从而绕过此最大线程限制。