【发布时间】:2015-12-12 00:52:19
【问题描述】:
当前的实现如下所示:
public class BlockingCollection<T> : IEnumerable<T>, ICollection, IEnumerable, IDisposable
有谁知道为什么它也没有实现ICollection<T>?有点烦人...
【问题讨论】:
-
根据the documentation,它还实现了
IReadOnlyCollection<T>(.net 4.5+)。 -
该类没有密封,所以如果你真的需要它来实现,你可以手动继承和代理实现。
-
@UweKeim 当然,但我也想在收藏中添加一些项目......
-
请记住
ICollection<T>与ICollection非常不同。 Contains() 方法是破坏交易的 imo,对 ICollection 至关重要,但无法以有效的线程安全方式实现它。 -
查看一个非常接近的问题“为什么 ConcurrentBag
不实现 ICollection ?” stackoverflow.com/q/5611781/2680660
标签: .net concurrent-collections