好像锁到这里了,做个简单的测试:
<%@ OutputCache Duration="10" VaryByParam="*" %>
protected void Page_Load(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(new Random().Next(1000, 30000));
}
第一个页面在此处遇到断点,即使它处于休眠状态...没有其他请求在 Page_Load 方法中遇到断点...它等待第一个页面完成并将结果返回给请求该页面的每个人。
注意:这在 webforms 场景中更容易测试,但鉴于这是框架的一个共享方面,您可以在 MVC 中进行相同的测试并获得相同的结果。
这是另一种测试方法:
<asp:Literal ID="litCount" runat="server" />
public static int Count = 0;
protected void Page_Load(object sender, EventArgs e)
{
litCount.Text = Count++.ToString();
System.Threading.Thread.Sleep(10000);
}
在第一个请求进入睡眠状态时排队的所有页面将具有相同的计数输出。