如果是在view类下,直接使用this.Dispatcher.Invoke就可以异步进行UI更新
Task.Run(() =>
{
this.Dispatcher.Invoke(new Action(() => { }));
});
但如果是在view绑定的viewmodel类中,是不能直接进行this.Dispatcher.Invoke的
这时候我们可以先获取viewmodel线程(和view线程相等)中的dispatcher,之后再在异步任务中使用dispatcher
Dispatcher dispatcher = Dispatcher.CurrentDispatcher;
Task.Run(() =>
{
dispatcher.Invoke(new Action(() => { }));
});