【问题标题】:Is there any way to get the classes from System.Collections.Concurrent in .NET 3.5?有没有办法从 .NET 3.5 中的 System.Collections.Concurrent 获取类?
【发布时间】:2010-06-08 03:27:31
【问题描述】:

这个问题几乎说明了一切。

有谁知道从 .NET 3.5 中的 System.Collections.Concurrent 命名空间获取集合类的任何方法?

我想我要问的是,是否有人经历过将这些类移植到他们自己的 DLL 的麻烦,该 DLL 可以从 .NET 3.5 访问。

【问题讨论】:

标签: .net .net-3.5 collections concurrency


【解决方案1】:

更新:很遗憾,似乎不再为 .NET 3.5 提供反应式扩展库。但是,如果您能找到该库的旧版本,它肯定包含 .NET 3.5 的并发集合类的反向移植。我知道是因为我在以前的公司广泛使用过它们


我只是偶然发现了这个。

事实证明,这些集合一直都可以通过 Microsoft's Reactive Extensions (Rx) library 获得,它适用于 .NET 3.5,实际上 我已经使用了一段时间(只是从未意识到它们是那里)。

System.Collections.Concurrent 命名空间由 System.Threading.dll 提供。

这里只是为了后代发布。

【讨论】:

  • Rx 库现在仅适用于 .NET 4。甚至我找不到 System.Collections.Concurrent 的旧库。
  • @JosephKingry:对不起,在我发布这个的时候,他们提供了 3.5 的版本,而旧版本肯定提供了并发集合(我经常使用它们)。我想你现在最好的选择是升级到 4.0 或尝试找到旧版本的 Rx!
【解决方案2】:

不,它们在 System.dll 的 4.0 版本中。因此,试图将其引入 3.5 应用程序是行不通的。

【讨论】:

  • 我刚刚发现它们实际上在 .NET 3.5 中可用,作为 Rx 扩展库的一部分。
  • @Dan 太棒了!在那些依赖于 4.0 运行时的类中,我一无所知,因此可以将实现复制到任何 3.5 程序集中。
【解决方案3】:

我使用了Task Parallel Library for .NET 3.5。效果很好。

包装包括:

  • 用于执行异步操作的任务。

  • ConcurrentStack、ConcurentQueue 和 ConcurrentDictionary 等并发集合。

  • 用于编写并行查询的 PLINQ。

  • 其他线程操作,例如 Barrier、SpinLock 和 SpinWait。

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 2012-12-23
    • 2018-09-25
    相关资源
    最近更新 更多