And*_*ech 7 asp.net-mvc scaling asynchronous controller
将ASP.NET MVC同步控制器(Controller
)更改为异步控制器(AsyncController
)似乎是一件微不足道的事情,但是什么时候应该这样做?
我是否应该让每个控制器都异步而不管其动作如何?如果在异步控制器中使用,将会改进哪些操作示例?
以最简单的例子:静态html页面.因此,您拥有最基本的控制器,只需View
从Index
操作中返回一个.该控制器是否应该更改为异步,即现在返回IndexCompleted
?
我知道这是一个老问题,但我很难得到答案,所以我的两分钱.
它就像是说如果我们没有发烧,我还应该吃药吗?如果在Web服务器上看到线程饥饿,则应使用Asynch控制器.IIS Web服务器维护一个线程池.因此,当任何请求进入时,他从线程池中获取线程.如果在给定时刻池中的所有线程都被使用并且请求进入,则该请求进入等待模式.这种情况被称为"线程饥饿".你也可以观看这个youtube视频,其中我已经演示了MVC线程饥饿的样子
当您将控制器设置为Asynch时,它会利用该线程,生成操作,并将该线程移回线程池,以便可以将其用于进入MVC应用程序的其他请求.操作完成后,他从线程池中拉回线程并显示视图.
归档时间: |
|
查看次数: |
4071 次 |
最近记录: |