【问题标题】:Thread safe enumeration, add or removal of a collection in c#线程安全枚举,在c#中添加或删除集合
【发布时间】:2017-01-07 21:20:31
【问题描述】:

我在面试中遇到了一个问题,我不确定我是否理解正确。这真的是实时场景吗? 但我正在尽力解释问题

创建一个要收集的类(实现 IEnumerable),它将有一个数据结构(字典),其中包含非常大的数据块。用户可以迭代此数据。但是这个类还应该提供向数据结构添加和删除项目的选项。这么多线程都可以访问它。 因此,当一个线程迭代该集合时,其他线程可能正在向该集合添加一个项目。因此,正在迭代的线程也应该检索最新添加的项目。

那么这个类会是什么样子

【问题讨论】:

    标签: c# multithreading ienumerable ienumerator icollection


    【解决方案1】:

    从 4.0 版开始,.net 已经提供了这样的集合。

    看看System.Collections.Concurrent-Namespace。 并深入了解 ConcurrentBagConcurrentDictionary 类。

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      相关资源
      最近更新 更多