替换ObservableCollection?

我正在寻找一个线程安全的ObservableCollection的替代品,在UI线程上引发事件,最好有一个AddRange方法。 我已经看到在这里和其他地方发布了一些实现,但我更喜欢已经过测试和validation的实现,而且我不需要维护自己。

所以有人能指出我这样的替代品,最好通过NuGet获得吗?

对于线程安全集合,请检查System.Collections.Concurrent命名空间。 ConcurrentStack有一个PushRange方法,可以在堆栈顶部插入多个对象。

您可以尝试使用Microsoft的BulkObservableCollection ,虽然我不确定为什么他们会把它放在这么奇怪的命名空间中! 当我在VS2012中尝试“添加引用…”时没有看到它列出,不得不手动浏览到C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL

您可以尝试这里描述的那个:

http://deanchalk.com/2010/02/01/thread-safe-dispatcher-safe-observable-collection-for-wpf/

它是博客文章中的完整实现。 它可作为源(来自该页面),因此可能不符合您的测试/validation标准。

我没有使用它,所以我不能保证它的工作效果(或不能)。

更新:旧的链接被破坏了。 我用当前链接替换它。 Dean Chalk实际上是SO的成员,所以这里有一个链接到他的SO配置文件,以防它再次破坏:

https://stackoverflow.com/users/328848/dean-chalk