博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF / Win Form:多线程去修改或访问UI线程数据的方法( winform 跨线程访问UI控件 )...
阅读量:5281 次
发布时间:2019-06-14

本文共 755 字,大约阅读时间需要 2 分钟。

WPF:谈谈各种多线程去修改或访问UI线程数据的方法

http://www.cnblogs.com/mgen/archive/2012/03/10/2389509.html

 

子线程非法访问UI线程的数据,会产生如下错误:

InvalidOperationException:The calling thread cannot access this object because a different thread owns it.

这是由于UI线程的数据不能直接被其他线程访问或者修改

 

解决方案:

采用Dispatcher类的Invoke()或BeginInvoke()方法:

this.Dispatcher.BeginInvoke(new Action(() => Title = "Mgen"));

 

Win Form 中没有dispatcher,dispatcher存在于WPF/Silverlight中。如果想在win form中实现异步编程或是跨线程操作可以考虑委托或backgroundworker。

 

winform中测试通过代码:

方法1:

this.BeginInvoke(new Action(() => txtbox_pid.Text = pid));

方法2:

 lable2.Invoke(new EventHandler(delegate { label2.Text = "TEST"; }));

 

更多参考:

C# 前台线程与后台线程的区别和联系 - petercao - 博客园

http://www.cnblogs.com/bluestorm/p/3282156.html

 

转载于:https://www.cnblogs.com/bluestorm/p/3259925.html

你可能感兴趣的文章
庖丁解“学生信息管理系统”
查看>>
Pyltp使用
查看>>
其他ip无法访问Yii的gii,配置ip就可以
查看>>
使用json格式输出
查看>>
border-image属性在chrome中的不同效果
查看>>
php做的一个简易爬虫
查看>>
x的x次幂的值为10,求x的近似值
查看>>
hdu-5009-Paint Pearls-dp
查看>>
内存泄漏调查
查看>>
jquery获取html元素的绝对位置和相对位置的方法
查看>>
谈谈spring
查看>>
ios中webservice报文的拼接
查看>>
Power BI 报告的评论服务支持移动设备
查看>>
HDU 4920 Matrix multiplication
查看>>
ACdream 1068
查看>>
会声会影毛玻璃制作
查看>>
HDU 2665 Kth number
查看>>
CodeChef DGCD Dynamic GCD
查看>>
记叙在人生路上对你影响最大的三位老师
查看>>
002.大数据第二天
查看>>