【发布时间】:2011-02-09 11:07:38
【问题描述】:
我有这样定义的四级数据结构:
Dictionary<Type1, Dictionary<Type2, Dictionary<Type3, List<Type4>>>>
整个事情都封装在一个类中,该类也维护线程安全。目前它只是在读取/操作数据时锁定整个集合(读取比写入更常见几个数量级)。
我正在考虑将Dictionary 替换为ConcurrentDictionary,将List 替换为ConcurrentBag(其项目不必订购)。
如果我这样做,我是否可以消除锁并确保并发集合能够正确完成它们的工作?
【问题讨论】:
-
并发集合会正常工作,但这种数据结构看起来很疯狂!
-
您确定不想要
ConcurrentDictionary<Tuple<TKey1,TKey2,TKey2>,TValue>? -
@CodeInChaos 查看我对 Mania 回答的评论。
标签: c# .net .net-4.0 concurrency parallel-extensions