.NET 4.0 引入了System.Collections.Concurrent命名空间:
“ System.Collections.Concurrent命名空间提供了几个线程安全的集合类,当多个线程同时访问集合时,应使用这些类代替System.Collections和 System.Collections.Generic命名空间中的相应类型”
BlockingCollection<T>班级ConcurrentBag<T>班级ConcurrentQueue<T>班级ConcurrentDictionary<TKey, TValue>班级OrderablePartitioner<TSource>班级Partitioner班级IProducerConsumerCollection<T>界面
该类SynchronizedCollection<T>(自 .NET 3.0 起可用):
“提供一个线程安全的集合,其中包含由泛型参数指定的类型的对象作为元素”
...在System.Collections.Generic命名空间中。
那么,为什么SynchronizedCollection<T>类是线程安全的但不是并发的呢?
是什么使SynchronizedCollection<T>泛型类与 中的集合不同且不兼容System.Collections.Concurrent?
更新:
让我重新表述这个问题:属于命名空间的所有泛型集合中的共同点和区别新特性是什么,这在泛型类System.Collections.Concurrent中不存在(并且在使用时是不可能的)?SynchronizedCollection<T>
我将标题更改为“System.Collections.Concurrent向 .NET 3.0 添加了哪些 .NET 4.0 集合的功能SynchronizedCollection?”。
但大多数情况下,我很想知道是什么使得在 .NET 3.0 的基础上无法做到这一点
更新2:关于注释:
“这个问题在这里可能已经有了答案:
就我的问题而言,答案令人困惑——新功能是进化的(使用 .NET 4.0 之前的功能)还是革命性的(在 .NET 4.0 之前的版本中不可用)?