一、背景
小伙伴们在做wpf开发时,如果在子线程中去设置主线程中UI控件的属性,很可能会出现“调用线程无法访问此对象,因为另一个线程拥有该对象”。如何解决呢?
二、解决思路
比如我们的wpf控件是一个TextBox,名字是tbResult,现在需要在子线程中,修改其Text属性,那么如何实现呢?
使用以下代码即可:
this.tbResult.Dispatcher.Invoke(new Action(()=>{ this.tbResult.Text = "Result is..."; }));
三、注意事项
1.如果需要实现如何在winform中跨线程访问控件,可以参看博主的这篇文章
C#之winform跨线程调用异常
2.我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出BIM相关软件开发以及编程干货;
3.欢迎加入BIM行业开发交流1群,获取更多开发资料 群号:711844216