我正在尝试将值存储在缓存中并将其取回以缩短处理时间。当我取回缓存项时,我需要计算该值。但问题是它没有给我存储在缓存中的原始值。取而代之的是,它给了我从缓存中获取后计算出的最新值。
我使用以下内容来模拟我的问题。我第一次将“abc123”存储在缓存中。然后我将其更改为“def”。但是当我取回它时,它显示“def”而不是“abc123”。应该是这样吗?还是我做错了?谢谢。
protected void Page_Load(object sender, EventArgs e)
{
MyObj abc = (MyObj)Cache["myCache"];
if (abc != null)
{
Response.Write(abc.MyText);
Response.End();
return;
}
Response.Write(abc);
abc = new MyObj() { MyText = "abc123" };
Cache.Insert("myCache", abc, null, DateTime.Now.AddMinutes(1), TimeSpan.Zero);
abc.MyText = "def";
}
class MyObj
{
public string MyText { get; set; }
}