2008-10-13 41 views
6

这似乎是微软曾与的ObservableCollection一个伟大的想法。它们非常适合绑定,并且在UI上超快。使用一个ObservableCollection <T>与后台线程

但是,你要调整每次需要上下文切换到分派线程好像有点多。有谁知道使用它们的最佳实践吗?仅仅是将ICollection填充为业务层中的消息对象,然后在UI层中创建ObservableCollection?那么您如何在UI上处理集合的更新?

回答

2

正在更新UI线程真正造成太大的瓶颈,为您的应用程序上的ObservableCollection?如果没有,请坚持在UI线程上更新它。请记住,这不是真的,当你与调度运行的东西这是发生上下文切换 - 相反,你只需将作业提交到UI线程,这是一个已经运行的线程,操作系统将背景在某个时刻切换到反正。 UI线程将您提交的作业从内部队列中取出并执行。你不会强迫你自己切换上下文。

+0

它不是上下文切换,除非它是同步操作 – Amsakanna 2010-03-03 14:58:46

1

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