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

winform跨线程

时间:2015-01-23 12:57:15      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

在winform中经常用到多线程,那么用多线程对控件进行赋值和修改的时候呢会出现类似“该控件不是当前线程创建”的错误信息,在winform中两种办法:

1.在加载事件中写这句话,其作用呢就是线程的异步调用

 1 System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; 

2.用委托来实现线程对控件的赋值操作

1 public delegate void OutDelegate(string text);
2 public void OutText(string text)
3 {
4 txt.AppendText(text);
5 txt.AppendText( "\t\n" );
6 }
7 OutDelegate outdelegate = new OutDelegate( OutText );
8 this.BeginInvoke(outdelegate, new object[]{text});

 

 

补充一句:

在winform中创建带参数的线程,可以这么写

1 Thread thread = new Thread(new ParameterizedThreadStart(getweathering));
2 
3 thread.Start(comboBox4.Text);
4 
5  
6 
7 void getweathering(string temptext)
8 
9 {}

 

winform跨线程

标签:

原文地址:http://www.cnblogs.com/lsqandzy/p/4243795.html

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