ConcurrentDictionary作为静态缓存

时间:2010-08-01 17:42:34

标签: c# caching concurrency

我正在考虑将class(s​​ingleton)与使用ConcurrentDictionary实现的集合一起使用。该类将用作缓存实现(asp.net / wcf)。

您如何从这样的类中明确地揭示这些集合与仅暴露于例如每种方法(获取,添加,清除)3种方法(使用CD中的安全方法)?

2 个答案:

答案 0 :(得分:5)

当你正在实现一个缓存时,我建议只将那些你需要的方法暴露给外面的世界,以防止任何意外的副作用,如果a.n.other用户使用字典。

答案 1 :(得分:3)

没有过期策略的缓存是内存泄漏。无论您提出什么策略都会影响Add()方法。你必须包装该方法来初始化让你的到期逻辑工作的东西。您不能让客户端代码直接操作集合。

所以,是的,创建一个类包装器。