我的 WPF 应用程序是使用 MVVM 模式构建的。ViewModel 将与服务器异步通信,当返回请求的数据时,会触发 ViewModel 中的回调,并对这些数据进行处理。这将在不是 UI 线程的线程上运行。有时这些回调涉及需要在 UI 线程上完成的工作,所以我需要 Dispatcher。这可能是这样的:
- 将数据添加到 ObservableCollection
- 触发 Prism 命令,将设置要在 GUI 中显示的内容
- 创建某种 WPF 对象。
我尽量避免后者,但我发现这里的前两点对于 ViewModel 来说是合理的事情。所以; 让 ViewModels 持有 Dispatcher 以便能够为 UI 线程调用命令可以吗?或者这被认为是不好的做法?为什么?