首页 > 解决方案 > C# 在使用时删除缓存

问题描述

想象一下,我在缓存中有 100 个自定义对象,每个对象都是一家公司,并且有一个关联的数字。

公司1:763,公司2:603,公司3:829...

我用这些数字计算一个平均数,并缓存平均值。

当用户浏览网站时,所有数字和平均值都在 ASP.net 缓存中。

现在在后台我有一个不时将这些数字更新到数据库的过程。

然后我遍历缓存并删除所有公司对象以及平均缓存,如下所示:

foreach (System.Collections.DictionaryEntry entry in HttpRuntime.Cache)
{
   HttpRuntime.Cache.Remove((string)entry.Key);
}

问题是:我如何确定在从缓存中删除所有这些项目的过程中,前端网站中的平均值没有被错误计算?(请记住,我还将平均值保存在缓存中)

例如,假设在删除公司 53 的缓存时再次加载网站(其余最多 100 个待删除)。因此,有一次,平均值可能会被新旧数字计算错误。

谢谢!

标签: c#asp.netcaching

解决方案


推荐阅读