我在多线程环境中有一个c#字典。我使用TryGetValue进行无锁读取,同时字典正在重新组织。 是否有可能获得与此密钥无关的完全不同的值?我的意思不仅仅是一个不是最新的值,而是一个对应于不同密钥的完全错误的值。
答案 0 :(得分:3)
简短回答:是的!
答案很长:默认情况下,字典不是线程安全的。如果您需要线程安全的,可以使用ConcurrentDictionary
https://msdn.microsoft.com/en-us/library/dd287191(v=vs.110).aspx
另请参阅有关线程安全集合https://msdn.microsoft.com/en-us/library/dd997305(v=vs.110).aspx
的Microsoft参考资料