跨线程访问控件解决办法

     在多线程访问控件有两种方式

   方式1: 取消对跨线程操作的检查 在 from 的构造 函数中增加        

system.window.forms.control.CheckForIllegalCrossThreadCalls=false;

  方式2 : 采用委托的形式作为代理通知主线程控件,允许访问

 delegate void  showData(string para);

  visistControl(string para)

{

   if (this.textbox1.invokeRequered) // 如果是子线程访问

   {

    showData  show= new showData(testthread)

     invoke( show,new object[]{ para} );

  }else

{

 this.textbox1.text=para;

}

}

 // 委托参数

void  testthread(string para)

{

}

 

 

 

 

posted @ 2014-11-26 16:04  Cn.Ruyi  阅读(458)  评论(0编辑  收藏  举报