欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WPF Dispatcher.BeginInvoke子线程更新UI

程序员文章站 2022-03-25 17:57:39
在开发WPF应用时出现:”调用线程无法访问此对象,因为另一个线程拥有该对象。“ 是因为UI线程是WPF应用的主线程,若尝试子线程更新UI线程应使用Dispatcher.BeginInvoke()或者Invoke()方法。 Dispatcher.BeginInvoke() //异步执行,不等待委托结束 ......

在开发wpf应用时出现:”调用线程无法访问此对象,因为另一个线程拥有该对象。“

是因为ui线程是wpf应用的主线程,若尝试子线程更新ui线程应使用dispatcher.begininvoke()或者invoke()方法。

dispatcher.begininvoke() //异步执行,不等待委托结束就更新

dispatcher.invoke()          //代表同步执行

action()                            //委托

this.dispatcher.begininvoke(new action(()=>
{ 
    //你的更新操作
}));