首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

报“线程间操作无效: 从不是创建控件的线程访问它”用代理不行,该如何解决

2012-04-27 
报“线程间操作无效: 从不是创建控件的线程访问它”用代理不行如代码:..............ExportThread new Thr

报“线程间操作无效: 从不是创建控件的线程访问它”用代理不行
如代码:  
  ..............
  ExportThread = new Thread(new ThreadStart(delegateMethod));
  ExportThread.Start();
  }






  public void delegateMethod()
  {
  gate = new invokeDelegate(ExportMethod);
  this.Invoke(gate);
  }

我已经通过代理委托来invoke了,以上方法网上很多都说这样用,“线程间操作无效: 从不是创建控件的线程访问它”这个错误是不报了,但是感觉控件还是用主线程的,窗体还是会假死,问题根本没有解决,有没有高手指点一下呀!

[解决办法]
可以直接在load事件里面关闭线程安全System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls=fasle;
[解决办法]

C# code
if (label.InvokeRequired)                {                    label.Invoke(new del(setText));                }        private  void setText()        {        }
[解决办法]
不是那样用的,这样
ExportThread = new Thread(new ThreadStart(delegateMethod));
Invoke(ExportThread);

方法里用Invoke不起作用的


[解决办法]
http://topic.csdn.net/u/20111101/10/6ebf484a-f987-4eb0-add4-7167c0b6bcab.html
[解决办法]
http://blog.csdn.net/wksnm0724/article/details/6902082
要理就要理到底
别有个方法就行了
[解决办法]
this.Invoke(new MethodInvoker(delegate()
{
//do something
}));

热点排行