我希望在WCF服务的请求级别实现缓存.对此服务的每个请求都执行大量数据库调用.想想多个数据收集器.我们需要允许一个数据收集器访问先前数据收集器已经检索的信息.
我希望通过为每个请求创建一个特定的实例来使用新的.Net 4.0内存缓存.
这是一个好主意吗 ?或者我应该只使用Dictionary对象?
顺便说一句:数据收集将是并行的,因此锁定会有更多复杂性,但我也可以使用并发集合.
Yiğ*_*ner 40
如果您不需要某种过期逻辑,我建议使用并发集合.您可以轻松实现单个条目缓存机制组合ConcurrentDictionary和Lazy类.这是关于Lazy和ConcurrentDictionary组合的另一个链接.
如果您需要项目过期,那么最好使用内置的MemoryCache并实现双重检查锁定模式以保证单个检索缓存项.可以在锁定模式中找到准备好的双重检查锁定实现,以正确使用.NET MemoryCache