在简单的旧字典<string,object>上使用MemoryCache的原因是什么?

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

我明白,如果你想要:

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

有没有其他令人信服的理由使用一个标准Dictionary<string,object>的MemoryCache

我有几本关于C#和.NET的书,没有任何地方提及它。

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

MemoryCache有一个驱逐策略,所以它可以抛出不再需要的条目,或者你没有足够的内存了。

字典不会“丢失内容”。

更新: MemoryCache是​​线程安全的,并具有诸如AddOrGetExisting之类的方法。 使用字典,你必须自己同步访问(或使用ConcurrentDictionary)。