我想知道Web应用程序中的并发性是如何工作的。我读过几篇文章,并且我的理解是HttpApplication的多个实例将同时工作。现在,我创建了一个简单的Web应用程序来测试并发,把下面给Global.asax中:IIS,Asp.NET管道和并发
protected void Application_BeginRequest(object sender, EventArgs e)
{
Response.Write("Request started: " + DateTime.Now);
System.Threading.Thread.Sleep(10000);
Response.Write("<br />");
Response.Write("Request ended: " + DateTime.Now);
Response.End();
}
我期待,如果我浏览到Web应用程序根目录中的几个浏览器标签几乎在同一时间,他们会同时启动和停止。但是,他们似乎没有。第二个标签页的开始时间与第一次结束时间相同。然后我通过在httpmodule或default.aspx page_load中使用相同的代码进行测试,并得到相同的结果。
这是怎么回事?为什么这些请求不是平行的?
编辑:我把我的理解主要是两篇文章:“如果多个请求针对同一应用程序同时到达,多一个HttpApplication对象将使用”
http://msdn.microsoft.com/en-us/magazine/cc188942.aspx说
和http://www.code-magazine.com/article.aspx?quickid=0511061&page=5有一个aspx页面的例子,它基本上做了我测试的内容,评论为“模拟缓慢的请求,以便我们可以看到多个请求”。旁边Thread.Sleep电话
这可能是我完全误解的东西......但是什么?
http://www.code-magazine.com/article.aspx?quickid=0511061&page=5
谢谢凯夫,看到我的答案也...我认为,奇怪的事情正在发生! – mmiika 2008-11-21 06:35:38