跨线程操作

跨线程操作

建议方法
 1 //lable1是主线程创建的  
 2 Thread td = new Thread(() =>
 3     {
 4         //如果label不是当前执行此方法的线程创建的,需要用Invoke,跨线程操作
 5         if (label1.InvokeRequired)
 6         {
 7             label1.Invoke(new Action(() => { label1.Text = "11"; }));
 8         }
 9         //如果label是当前执行此方法的线程创建的,可以直接操作
10         else
11         {
12             label1.Text = "11";
13         }
14     });
15 td.IsBackground = true;
16 td.Start();  
以下方法不建议
 1 private void button1_Click(object sender, EventArgs e)
 2 {
 3     //lable1是主线程创建的  
 4     Thread td = new Thread(() => { label1.Text = "11"; });
 5     td.IsBackground = true;
 6     td.Start(); 
 7  } 
 8 
 9 private void Form1_Load(object sender, EventArgs e)
10 {
11     //不让检查是否跨线程
12     Control.CheckForIllegalCrossThreadCalls = false;
13 }  

 

 
posted on 2016-12-20 16:23  jmlsaul  阅读(167)  评论(0)    收藏  举报