注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zpehome的博客

Hope is a good thing,the best of things

 
 
 

日志

 
 

跨线程操作winform控件  

2012-12-03 12:09:31|  分类: .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在用C#写winform写串口测试程序时,需要将串口接收到的数据显示在文本框中,如果直接在接收函数操作winform控件会报跨线程的错误(线程间操作无效从不是创建控件的线程访问它)。微软提供了一个属性可以忽略这种跨线程的检查,只要设置这个属性为false就可以忽略跨线程检查,

例如:TextBox.CheckForIllegalCrossThreadCalls=false;这样就忽略了TextBox这类控件的跨线程检查,但是一般不推荐这么做。

我们可以用委托来解决这类问题。

private delegate void SetText(TextBox tb,string str);

private void SetToTB(TextBox tb,string str)

{

if(tb.InvokeRequired)

{

SetText setText = new SetText(SetToTB);

Invoke(setText,new object[]{tb,str});

}

else

{

tb.text=str;

}

}

  评论这张
 
阅读(88)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017