首页 新闻 搜索 专区 学院

ASP.NET是如何给每次请求分配线程的?

1
悬赏园豆:60 [待解决问题]

  我们知道,ASP.NET为每个到来的请求分配了线程,如果线程池里有空闲的就取一个,如果没有就创建一个新的线程。

  问题1、ASP.NET的源码里面,是如何为每个请求创建并分配线程的?

  问题2、HttpRuntime得到HttpApplication后,调用了HttpApplication的BeginProcessRequest异步方法,此异步方法是如何体现“异步”二字的?

  如果有精彩分析会追加分数~

Shine Ss的主页 Shine Ss | 菜鸟二级 | 园豆:214
提问于:2013-11-22 11:32
< >
分享
所有回答(1)
0

完全没看过源码大概猜一下

请求到达IIS ->IIS分配到RunTime ->RunTime获取到HttpApplication对象

->BeginProcessRequest异步调用

异步调用就是在新线程中执行方法,也就是上面说的分配一个线程

吴瑞祥 | 园豆:28820 (高人七级) | 2013-11-25 09:28

事实上并没有在BeginProcessRequest中发现线程分配

调用BeginProcessRequest的地方也没有分配线程,在调用BeginProcessRequest的地方,还会根据条件调用非异步版本:ProcessRequest,所以我很想知道“分配线程”到底是在什么地方进行的。

支持(0) 反对(0) Shine Ss | 园豆:214 (菜鸟二级) | 2013-11-25 13:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册