我通过简单的代码片段向您展示我的问题。
这是流行的场景。用户在没有缓存时加载我们的页面,因此我们生成一个。在我的代码示例中,这需要 120 秒来保存缓存,在此之前我会修改静态变量。
我的问题是为什么当我在同一时刻多次打开此页面并且缓存为空时静态变量“i”不会增加。
public partial class _Default : Page
{
static int i = 0;
protected void Page_Load(object sender, EventArgs e)
{
int i;
var cache = Cache.Get("cache") as string;
if (string.IsNullOrEmpty(cache))
{
i = GenerateCache();
}
else
{
i = Convert.ToInt32(cache);
}
Response.Write(i.ToString());
}
public int GenerateCache()
{
var sw = new Stopwatch();
sw.Start();
++i;
Response.Write(i+"<br>");
while (sw.ElapsedMilliseconds < 1000 * 120) { }
Cache.Insert("cache", i.ToString());
return i;
}
}