【发布时间】:2011-11-28 20:44:03
【问题描述】:
我有一个使用 MVVM 设计模式创建的 wpf 应用程序。在给定的视图中,有 5 个网格都绑定到不同的集合集,即 5 个集合对应 5 个网格。现在我不想在从数据库中检索 5 组数据时挂断 UI。
如果以下解决方案是一个好主意,请告诉我,否则请提出建议:
- 5 个可观察的集合,用于绑定到网格
- 5 个代表调用
BeginInvoke进行数据库操作,每个代表在EndInvoke上都有IEnumerable Collection<Type>。 - 委托 oncomplete 回调将从
IEnumerable collection<Type>填充ObservableCollection<Type>,以允许调度程序从 UI 线程更新 UI,因为 begininvoke 将在线程池线程上工作。
【问题讨论】:
-
准备好将这些更新分块。如果你用大量更新来冲击 UI,那么如果你使用多线程并不重要。
-
@Will :是的,因为只有一个 UI 线程使消息管道出队:)
-
@sll:也许在 WinRT 更新的几次迭代之后,我们将获得不止一个 friggen UI 线程。该死的,COM!
-
有意思,这个案例中COM是如何参与的?真的没有这么深的见识
标签: .net wpf mvvm delegates dispatcher