使用asp.net mvc 4,
我用这样的静态方法创建了一个类
public class StaticClass
{
public static int val { get; set; }
public static string ReturnValueBasedOnInput(int n)
{
string res;
switch (n)
{
case 101:
Thread.Sleep(30000);
res = "Long lasting response: 101" + val;
break;
default:
res = n.ToString() + " was provided..." + val;
break;
}
return res;
}
}
从我的控制器调用它:
public ActionResult Index(int id = 1)
{
ViewBag.returnValue = StaticClass.ReturnValueBasedOnInput(id);
return View(id);
}
我预计当我调用参数值为101的方法时,应用程序应该被阻止30秒,但它仍然保持响应。我认为,因为这是一个静态方法,所以传入的方法调用应该被阻止30秒。谁能解释一下这里发生了什么?
答案 0 :(得分:1)
应该阻止使用控制器Index
处理id=101
操作请求的线程。处理其他会话的其他请求的线程不会被阻止。根据相应控制器ReadOnly
的{{1}}会话属性,甚至可能无法阻止对同一会话的其他请求。