[MVC] 在action中执行Thread.Sleep会导致后续请求阻塞
假设我有一个如下的Action,用浏览器访问一次以后,输出ok然后挂起10秒,但是如果同时再访问一次,就必须等之前的请求处理完毕以后才会进入Action,也就是第二次访问要等10秒后才会输出ok,这是怎么回事?
但是如果开另外一个浏览器就不会有这样的问题
public class TestController : Controller
{
public void Index()
{
Console.WriteLine("ok");
Thread.Sleep(10000);
}
}
------解决方案--------------------
这个很明显的,同一个会话会被阻塞的,不同会话不会。
同一款浏览器会保持会话的,开另一款浏览器就是一个新的会话了,所以不会阻塞。