我熟悉控件的调度程序对象,但这不能解决MVVM场景中的问题。
我有一个UI命令,该命令在我的VM上调用一个方法,该方法生成一个线程,然后返回,当线程完成时(后台工作程序可能对此有用吗?)它将引发回调,但是窍门是,该回调会修改可观察的集合,那么如何在UI线程上引发此回调?
最佳答案
使用与UI线程关联的Dispatcher
。通常,您将拥有一个base ViewModel
class,它将Dispatcher
公开给所有子类。然后,您的VM将执行以下操作:
Dispatcher.Invoke((ThreadStart) delegate
{
//this code executes on the UI thread
});
关于wpf - 在WPF MVVM中,如何生成在UI线程上运行回调的后台任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313019/