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

dod*_*der 43 .net c# caching

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

我知道如果你想要它可以是有用的:

  • 限制缓存的总内存使用量
  • 您放入缓存中的对象有一个对象到期时间(生存时间)

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

我有几本关于C#和.NET的书籍,并没有任何参考.

Thi*_*ilo 36

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

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

字典不会"丢失内容".

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

  • `ConcurrentDictionary`也是线程安全的.. :) (4认同)