【问题标题】:ConcurrentDictionary enumeration and lockingConcurrentDictionary 枚举和锁定
【发布时间】:2012-08-29 10:02:28
【问题描述】:

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

【问题讨论】:

    标签: c# .net concurrency


    【解决方案1】:

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

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

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

    只要你没问题,你就不需要任何类型的锁定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      相关资源
      最近更新 更多