读书人

[MVC] 在action中执行Thread.Sleep能导

发布时间: 2014-01-22 00:03:39 作者: rapoo

[MVC] 在action中执行Thread.Sleep会导致后续请求阻塞
假设我有一个如下的Action,用浏览器访问一次以后,输出ok然后挂起10秒,但是如果同时再访问一次,就必须等之前的请求处理完毕以后才会进入Action,也就是第二次访问要等10秒后才会输出ok,这是怎么回事?
但是如果开另外一个浏览器就不会有这样的问题


public class TestController : Controller
{
public void Index()
{
Console.WriteLine("ok");
Thread.Sleep(10000);
}
}

[解决办法]
引用:
对了另外还有一个很重要的情况,那就是如果我开另外一个浏览器去访问就不会被阻塞,比如一开始我用chrome然后再用firefox就没问题!我查过有说是session被加锁的缘故,但是我禁止掉session后还是不行

这个很明显的,同一个会话会被阻塞的,不同会话不会。
同一款浏览器会保持会话的,开另一款浏览器就是一个新的会话了,所以不会阻塞。

读书人网 >asp.net

热点推荐