我声明如下ConcurrentDictionary
我担心的是,ConcurrentDictionary是线程安全的,但是List不是线程安全的。当我尝试使用键访问此列表时,是否需要在使用前放置锁?还是ConcurrentDictionary会照顾好它?
任何细节,将由衷的感谢。
最佳答案
ConcurrentDictionary
仅负责对字典的并发访问。任何在列表内引起副作用的代码(例如对其进行迭代或添加值)都必须带有附加的锁定机制,因为ConcurrentDictionary
对此不承担任何责任。
因此,是的,您将必须在列表周围添加锁定机制,或仅使用ConcurrentBag<T>
public static ConcurrentDictionary<int, ConcurrentBag<object>>
关于c# - 将并发字典保存线程不安全的集合是否需要在C#中锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25182269/