码迷,mamicode.com
首页 > 编程语言 > 详细

WinForm中在非UI线程更改控件值的办法

时间:2017-04-26 10:10:19      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:exce   ini   ui控件   tle   control   更新   url   title   sdn   

从非UI线程调用UI控件赋值、或进行其他更新UI的操作的话,会出现异常:

System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”的线程访问它。”

解决办法:

原来的

xxx.Text="Test";

换成

xxx.BeginInvoke(new Action(()=>{xxx.Text="Test"}));

使用BeginInvoke解决。

参考:Control的Invoke和BeginInvoke 是相对于支线线程(因为一般在支线线程中调用,用来更新主线程ui)Invoke立即插入主线程中执行,而BeginInvoke 要等主线程结束才执行

c# Invoke和BeginInvoke 区别

 

WinForm中在非UI线程更改控件值的办法

标签:exce   ini   ui控件   tle   control   更新   url   title   sdn   

原文地址:http://www.cnblogs.com/easyc/p/6766778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!