Response.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "<br /><br /><br />线程等待...<br />");        if (Request["a"] != null)
        {
            System.Threading.Thread.Sleep(10 * 1000);
        }        Response.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//同时开了两个窗口
//我先执行 http://localhost/WebSitet/test.aspx?a=100
//然后马上 http://localhost/WebSitet/test.aspx 
//http://localhost/WebSitet/test.aspx立刻就执行完毕 前后时间一样
//并未出现楼主说的后者等待前者的问题啊....

解决方案 »

  1.   

    不会啊我这里试的就是这样的我先执行http://localhost/WebSitet/test.aspx?a=100然后马上执行http://localhost/WebSitet/test.aspx后面一个页面总是等前面的执行完后才显示出结果
      

  2.   

    iis本身并不处理aspx文件,处理aspx文件时在aspnet_isapi.dll来处理的,这个过程不像你想象的那么简单,如果不考虑缓存的情况下,加入说每次请求,iis都会把控制传递给aspnet_isapi.dll,由它来生成响应输出的话,那研究多线程和单线程才有意义,而且肯定不会是一个请求一个线程,也不会是总共有一个线程,应该是在线程池里面的操作,设置好最大线程后,会进行复用
      

  3.   

    我知道了我刚才页面是在一个MYIE下面打开的
    我现在又开了一个MYIE后面的请求就不会给阻塞了这样说来是否对同一个机器的请求,总是放在一个线程中的?
      

  4.   

    同时开了2个窗口,应该在服务器那边就是不同的Session了,那就会走不同的线程了。
    楼主说的情况应该是在同一个浏览器上测试的,这样的话对于同一个Session,clr应该调用的是同一个线程里的方法,所以会等待
      

  5.   

    楼主有想法,不过楼主说的并发应该说的是IIS并发,和CLR并发没有关系,
    也就是说,假如有N个人通过浏览器访问服务器,那么IIS先把请求放在缓存里,等待aspnet_isapi.dll来提取请求。并不是说请求来了直接送到clr。这里是一个分层的思想
      

  6.   

    肯定不是一个机器一个线程的,你现在的感觉是加了缓存之后的,页面在aspnet_isapi.dll生成响应之后不会马上将该响应clear掉,而是缓存在客户端的上游,这个上游可能是服务器也可能是代理。你下次请求的话,根据缓存策略可能请求的就是缓存快照而已。
    如果每次都达到服务器并要求aspnet_isapi.dll生成响应的话,不可能每个用户一个线程,那aspnet_isapi.dll是不是还要维持这个对应关系,人家才懒得管你呢。肯定是线程池的。再说Http请求本身是无状态的,第一次请求和第二次请求,服务器不会说认出你这小子以前来过的,原理上讲,那解决这个问题的方法不就是http的一块小甜点心,cookie么!
      

  7.   

    众所周知的就是windows xp中iis默认线程为10,就是说同时能接受的并发请求是10。注意并发,那池里面10个线程被占用满的话,再请求就会报错或者等待
    http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe
    用这个工具可以更改默认线程
      

  8.   

    IIS对于 每一个 
    .aspx的 解析
    本身就是 多 线程的 
    如果是在IIS端 达到了 允许的线程数量
    那么.aspx等待 空闲那是正常的但是如果只是说
    只有一个人在用a.aspx 
    但是在其中 使用了 
     System.Threading.Thread.Sleep(10 * 1000);
    //-- 我的理解这个相对IIS来说 应该算是. 纤程
      

  9.   

    楼主参考一下这篇文章:______________________________________________________http://www.jztop.com/dev/aspnet/a116106419831710.html
    ______________________________________________________
      

  10.   

    一个session默认只对应一个线程.
      

  11.   

    cpp2017(慕白兄) 如何判断出一个Session一个线程。我觉得应该不是一个,否则的话,服务器段就必须维护线程与Session的对应关系.Session我觉得是公共变量,应该为线程共用。