如果我有一个 ConcurrentDictionary,我是否需要在使用它循环时锁定它foreach
?
问问题
8445 次
1 回答
51
如果我有一个 ConcurrentDictionary,在使用 foreach 循环遍历它时是否需要锁定它?
不。从文档中ConcurrentDictionary.GetEnumerator
:
从字典返回的枚举器可以安全地与字典的读取和写入同时使用,但它并不代表字典的即时快照。通过枚举器公开的内容可能包含调用 GetEnumerator 后对字典所做的修改。
只要您对此感到满意,就不需要任何锁定。
于 2012-09-04T17:40:24.483 回答