在普通的Dictionary <string,object> </string,object>上使用MemoryCache有什么令人信服的理由

时间:2011-08-31 01:05:24

标签: c# .net caching

我刚刚遇到了.NET 4中新增的MemoryCache

我知道如果你想要它可能有用:

  • 限制缓存的总内存使用量
  • 为放入缓存中的对象设置对象到期时间(生存时间)

是否有任何其他令人信服的理由使用MemoryCache而不是标准Dictionary<string,object>

我有几本关于C#和.NET的书,并且在任何地方都没有引用它。

1 个答案:

答案 0 :(得分:35)

我认为你确定了两个令人信服的理由: - )

MemoryCache有一个驱逐策略,因此它可以丢弃不再需要的条目或者你没有足够的内存。

字典不会“丢失内容”。

更新: MemoryCache是​​线程安全的,并且具有AddOrGetExisting等方法。使用Dictionary,您必须自己同步访问(或使用ConcurrentDictionary)。