ConcurrentDictionary枚举和锁定

时间:2012-09-04 17:38:32

标签: c# .net concurrency

如果我有一个ConcurrentDictionary,我是否需要在使用foreach进行循环时锁定它?

1 个答案:

答案 0 :(得分:36)

  

如果我有一个ConcurrentDictionary,我是否需要在使用foreach循环时锁定它?

没有。来自ConcurrentDictionary.GetEnumerator的文档:

  

从字典返回的枚举器可以安全地与字典的读写一起使用,但它并不代表字典的即时快照。通过枚举器公开的内容可能包含在调用GetEnumerator后对字典所做的修改。

只要您对此感到满意,就不需要任何锁定。