使用MemoryCache而不是普通的Dictionary<string, object>的强有力理由是什么?

47

我刚刚了解到MemoryCache,它是.NET 4中的新功能。

如果您想要:

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

我明白这很有用。

除了标准的Dictionary<string,object>外,是否还有其他引人注目的理由使用MemoryCache?

我有一些关于C#和.NET的书籍,但没有任何参考资料提到它。


我有些困惑。一个 Dictionary<string,object> 怎样在内存中持久化? - Colin Pear
1个回答

39

我认为您已经成功地概括了两个引人注目的原因 :-)

MemoryCache具有清理策略,以便丢弃不再需要或内存不足的条目。

Dictionary将不会“失去内容”。

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


是的,这个清除缓存的想法看起来很有趣 - 我看到通过在项目上设置CacheItemPolicy,您可以添加一个SlidingExpiration(如果在给定时间段内未被访问,则会被清除)或者您还可以添加其他自定义条件,例如磁盘上的文件被修改。 - dodgy_coder
MemoryCache 中我最想要的一个功能就是能够进行文件的读取和存储。 - Tomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接