在简单的旧字典<string,object>上使用MemoryCache的原因是什么?
我刚刚遇到了.NET 4中新增的MemoryCache 。
我明白,如果你想要:
- 限制caching的总内存使用量
- 为放置在caching中的对象设置一个对象到期时间(生存时间)
有没有其他令人信服的理由使用一个标准Dictionary<string,object>
的MemoryCache
我有几本关于C#和.NET的书,没有任何地方提及它。
我认为你钉了两个令人信服的理由:-)
MemoryCache有一个驱逐策略,所以它可以抛出不再需要的条目,或者你没有足够的内存了。
字典不会“丢失内容”。
更新: MemoryCache是线程安全的,并具有诸如AddOrGetExisting之类的方法。 使用字典,你必须自己同步访问(或使用ConcurrentDictionary)。