使用带有后台线程的ObservableCollection <t> </t>

时间:2008-10-13 20:55:31

标签: .net design-patterns observablecollection

似乎微软对ObservableCollection有一个好主意。它们非常适合绑定,并且在UI上非常快。

但是,每次要调整它时需要上下文切换到Dispatcher Thread看起来有点像。有谁知道使用它们的最佳实践?是否只是将ICollection填充为业务层中的消息对象,然后在UI层中创建ObservableCollection?然后,您如何处理UI上的集合更新?

2 个答案:

答案 0 :(得分:2)

更新UI线程上的ObservableCollection真的会给你的应用程序造成很大的瓶颈吗?如果没有,请坚持在UI线程上更新它。请记住,当您使用Dispatcher运行某些内容时,并不是真正的上下文切换 - 相反,您只是将作业提交到UI线程,这是一个已经运行的线程,操作系统将在某个时刻切换到某个位置。 。 UI线程将提交的作业从内部队列中拉出并执行它。你不是自己强迫上下文切换。

答案 1 :(得分:1)

您也可以在WPF中使用旧的BackgroundWorker(如在Windows窗体中)。它将采用WPF的线程模型,并提供一个很好的抽象。