替换ObservableCollection?

时间:2012-09-17 21:27:07

标签: c# .net thread-safety observablecollection

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

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

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

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