C#实现跨线程操作控件方法
本文实例讲述了C#实现跨线程操作控件方法,分享给大家供大家参考。具体实现方法如下:
由于在.net平台下Winform、wpf禁止跨线程直接访问控件,因此在必须跨线程访问控件的时候采用异步方式。
1、winform项目中跨线程访问控件:
编写一个Winform小实例:在做winform项目中,有时为了将系统运行的状态实时显示到Form中,因此添加一个RichTextbox控件实时显示系统运行日志。本例实现的操作是将日志以字符串的形式写入RichTextbox控件,因为是实时显示,所以涉及到跨线程输入的问题。
privatedelegatevoidsetRichTexBox(strings); publicvoidsetText(stringtxt) { if(this.t_revmsg.InvokeRequired)//等待异步 { setRichTexBoxfc=newsetRichTexBox(Set); this.Invoke(fc,newobject[]{txt}); } else { this.t_revmsg.AppendText(txt); } }
privatevoidSet(stringtxt) { t_revmsg.AppendText(txt); }