初始时,我在字典中添加了一些值。
之后,我只需要TryGetValue。
在这种情况下,我需要锁定TryGetValue?
答案 0 :(得分:2)
是的,如果你只读它/使用TryGetValue
:
Dictionary<TKey, TValue>
可同时支持多个读者, 只要未修改集合。即便如此,列举 通过集合本质上不是一个线程安全的过程。在 枚举与写访问争用的罕见情况 必须在整个枚举期间锁定集合。允许的 多个线程可以访问的集合,用于读写 你必须实现自己的同步。
答案 1 :(得分:0)
在群集是线程安全之后读取词典。
使用 ConcurrentDictionary 类来确保在需要读写时的用例的线程安全性。
来自MSDN:
表示可以的线程安全的键/值对集合 由多个线程同时访问。
命名空间:
System.Collections.Concurrent程序集:mscorlib(在mscorlib.dll中)