【问题标题】:Why async controller needed in ASP.NET MVC? [duplicate]为什么 ASP.NET MVC 中需要异步控制器? [复制]
【发布时间】:2012-11-08 13:39:17
【问题描述】:

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

【问题讨论】:

  • 除非您正在处理一个收到大量请求的服务器(如 SO),否则您可能不会看到其阻止阻止有太多好处。
  • 谢谢指出,这个怎么办,删除?
  • 您也可以关闭投票自己的问题。

标签: asp.net-mvc


【解决方案1】:

异步控制器的全部意义在于在执行长操作时释放 IIS 线程。 IIS 线程是从 .NET 线程池中提取的。线程池线程的最大数量会因您的系统配置而异(在我的 core-2-quad 上是 1023)。这意味着长操作将消耗这些线程之一。当达到最大数量时,其他请求可能必须等到释放一个。说的很清楚:如果你有 1023 个动作执行长轮询请求,你的网站将停止响应额外的请求。

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

【讨论】:

  • 坦克,现在我明白了。
猜你喜欢
  • 2013-02-17
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 2015-02-19
  • 2015-08-14
相关资源
最近更新 更多