在C#中,多个线程可以读取和写入字典,前提是每个线程只访问字典中的一个元素而不会访问另一个元素吗?
答案 0 :(得分:4)
不,字典不是线程安全的。
除了修改作为字典中的值存储的引用类型(对象)的内容外。
在.NET 4中,我们将System.Collections.Concurrent.ConcurrentDictionary
。
答案 1 :(得分:3)
不,他们不能。 dictionary不是线程安全的:
字典(TKey,TValue)可以支持 同时多个读者,同样长 因为集合没有被修改。 即便如此,通过一个列举 集合本质上不是一个 线程安全的程序。在罕见的 枚举争辩的情况 与写访问,集合 必须在整个过程中锁定 列举。允许收集 由多个线程访问 读书和写作,你必须 实现自己的同步。