当前位置:  开发笔记 > 程序员 > 正文

.NET Dictionary:只枚举线程安全吗?

如何解决《.NETDictionary:只枚举线程安全吗?》经验,为你挑选了2个好方法。

简单地从多个线程枚举一个.NET字典是否安全?

根本没有修改词典.



1> Konrad Rudol..:

是的,在这种情况下,枚举是线程安全的,因为在foreach循环开始时,使用隐式调用创建枚举器的新实例GetEnumerator.



2> bruno conde..:

是的......差不多:

字典<(Of <(TKey,TValue>)>)可以同时支持多个读者,只要不修改集合即可.即便如此,通过集合枚举本质上不是一个线程安全的过程.在枚举与写访问争用的极少数情况下,必须在整个枚举期间锁定该集合.要允许多个线程访问集合以进行读写,您必须实现自己的同步.

(参考)


这不回答这个问题.引用的文本并不意味着纯读字典(就像这里的情况)不是线程安全的,因此"几乎"是误导性的.
该文档参考的第一句回答了问题,但文档引用中的最后两句适用于"阅读和写作".结合你的模糊"井几乎",对于被问到的问题,这个令人困惑,最终会产生误导性的答案.没有任何修改的读取是线程安全的.故事结局.你提供的大部分东西都让水变得混乱.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有