如果我初始化通用字典一次,并且不允许进一步添加/更新/删除,是否可以安全地从中读取多个线程而没有锁定(假设在启动读取器之前初始化字典)?
非泛型HashTable的帮助中有一条注释说它对多个读者来说是安全的,但我没有看到类似的不适用于通用字典
Eri*_*ert 42
为了您将来的参考,文档在这里:
http://msdn.microsoft.com/en-us/library/xfhwa508.aspx
它说:
只要未修改集合,Dictionary就可以同时支持多个读取器.即便如此,通过集合枚举本质上不是一个线程安全的过程.在枚举与写访问争用的极少数情况下,必须在整个枚举期间锁定该集合.要允许多个线程访问集合以进行读写,您必须实现自己的同步.
Tho*_*que 17
是的,如果你不再修改字典,这是安全的.线程安全只是读/写方案中的一个问题
| 归档时间: |
|
| 查看次数: |
14851 次 |
| 最近记录: |