【发布时间】:2012-08-29 10:02:28
【问题描述】:
如果我有一个 ConcurrentDictionary,在使用 foreach 循环遍历它时是否需要锁定它?
【问题讨论】:
标签: c# .net concurrency
如果我有一个 ConcurrentDictionary,在使用 foreach 循环遍历它时是否需要锁定它?
【问题讨论】:
标签: c# .net concurrency
如果我有一个 ConcurrentDictionary,在使用 foreach 循环遍历它时是否需要锁定它?
没有。来自ConcurrentDictionary.GetEnumerator 的文档:
从字典返回的枚举器可以安全地与字典的读取和写入同时使用,但它并不代表字典的即时快照。通过枚举器公开的内容可能包含调用 GetEnumerator 后对字典所做的修改。
只要你没问题,你就不需要任何类型的锁定。
【讨论】: