相关疑难解决方法(0)

为什么要使用异步请求而不是使用更大的线程池?

在荷兰的Techdays期间,Steve Sanderson发表了关于C#5,ASP.NET MVC 4和异步Web的演讲.

他解释说,当请求需要很长时间才能完成时,线程池中的所有线程都会变忙,新请求必须等待.服务器无法处理负载,一切都变慢了.

然后,他展示了如何使用异步webrequests提高性能,因为然后将工作委托给另一个线程,并且线程池可以快速响应新的传入请求.他甚至演示了这一点,并显示50个并发请求首先占用了50*1,但异步行为总共只有1,2 s.

但看到这一点后,我仍然有一些问题.

  1. 为什么我们不能只使用更大的线程池?是不是使用async/await来启动另一个线程,然后从头开始增加线程池?它不像我们运行的服务器突然获得更多的线程或东西?

  2. 用户的请求仍在等待异步线程完成.如果池中的线程正在执行其他操作,那么"UI"线程如何保持忙碌状态?史蒂夫提到了一个关于'一个知道什么时候完成的智能内核'的东西.这是如何运作的?

c# asp.net asynchronous async-ctp

66
推荐指数
3
解决办法
1万
查看次数

ASP.NET async /等待第2部分

我从这个问题中得到了 async/await-on-ASP.NET的各种好处.

我的理解是,异步与并行性不是一回事.因此,在Web服务器上,我想知道async/await给ASP.NET页面带来了多少好处.

是不是IIS + ASP.NET已经非常擅长为请求分配线程,如果onen页面忙于等待资源,服务器将只切换到处理另一个有工作要求的请求?

ASP.NET中可以使用有限数量的线程供ASP.NET使用 - 异步使用它们是否更有效?

正如Skeet先生在回答上述问题时指出的那样,我们不是在谈论阻止UI线程.我们已经是多线程的,并且在完成所有请求的任务之前无法完成Web响应,异步与否,对吗?

我猜它归结为:

对ASP.NET页面中的资源(例如文件或数据库请求)进行异步读取与阻止它有什么好处?

asp.net async-await

5
推荐指数
1
解决办法
771
查看次数

标签 统计

asp.net ×2

async-await ×1

async-ctp ×1

asynchronous ×1

c# ×1