我有一个多线程环境中的c#字典。我正在使用TryGetValue进行无锁阅读,同时字典正在重新组织。 是否有可能得到一个完全不同的值与这个键无关?我的意思不只是一个不是最新的值,而是一个完全错误的值对应于不同的关键。是否有可能C#字典返回完全错误的值。
1
A
回答
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
相关问题
- 1. 是否有可能从set_trace_func返回值?
- 2. C#字典总是返回一个值
- 3. 是否有可能看到在C++中返回的值?
- 4. 是否有可能强制谷歌脚本返回404错误?
- 5. Log.isLoggable是否返回错误的值?
- 6. EventLogEntry.TimeGenerated返回完全错误的日期
- 7. 是否有可能知道JFrame是否完全可见?
- 8. C#安全地返回字典引用
- 9. C#返回字典
- 10. C#处理值可能(或可能不是)数组的字典
- 11. 是否有可能返回异常?
- 12. 完全可分析字典/辞典
- 13. 返回的字典值是'None'python
- 14. C - 返回值错误
- 15. excel.Range.Find返回错误值C#
- 16. 是否有可能Java String.split可以返回空字符串[]
- 17. 访问C#字典和返回值
- 18. 是否有可能从Java中的方法返回多个值?
- 19. 是否有可能从wpf中的ivalueconverter返回多个值?
- 20. 是否有可能创建一个Tcl返回值的GUI?
- 21. 是否有可能使透明div的内容完全可见?
- 22. 是否有返回字符的UNICODE值的函数? (C++)
- 23. 使用可变键返回字典值
- 24. 是否有可能在SQL中有条件地返回字段?
- 25. 类方法返回字典错误
- 26. 元组字典返回列表错误?
- 27. boost :: test中是否有返回错误值的函数?
- 28. 是否有可能从MongoDB查询返回计算的字段?
- 29. 是否有可能从函数的循环中返回许多值? C++
- 30. 是否有可能注入一个DLL的C#代码并重写返回值?
微软参考先让你的工作。 –
多线程和无锁?是的,任何事都可能发生。数你自己幸运的机器没有炸毁。 – Corak
@Corak如果它不是一个Web应用程序,请不要忽略应用程序域隔离等。 – Mathematics