System.Runtime.Caching.MemoryCache列表缓存实例

时间:2012-05-10 08:54:45

标签: c# .net

我正在使用.net 4中的memorycache和多个命名的缓存实例。我想知道有没有办法列出当前在内存中的所有缓存实例?

1 个答案:

答案 0 :(得分:0)

如果没有对它们的引用,就无法在内存中获取缓存实例。

因此,解决方案是自己制作一个列表并跟踪。

List<System.Runtime.Caching.MemoryCache> cacheInstances = new List<System.Runtime.Caching.MemoryCache>();

然后只需在创建新MemoryCache对象时添加到该列表(并在销毁时删除)。

MemoryCache不是什么神奇的东西,你可以把它想象成使用时的改进:

Dictionary<String, Object> myCache

hashtable代替。

MemoryCache的好处是你可以获得对象到期(TTL),当缓存接近一些存储限制(访问优先级队列)时,可以更好地控制删除最近使用较少的项目。

因此,如果您想知道MemoryCache实例当前在内存中是什么,那么您需要引用它们,我很确定您无法访问不同进程的内存缓存,因此只会创建您创建的MemoryCaches。