C#c# 从不是创建控件 的线程访问它。

原创 2016年06月01日 10:21:14

有两种方式解决 
1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false;
2.使用Invoke等委托函数。

问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThreadCalls =false;默认就是这样,现在默认为true。
如果不会好几个线程同时操作一个控件用方法1就可以。如果存在多个线程一起操作控件使用方法2

例如:btn.Visible=false; 改为:this.setRich(false);

private delegate void myDelegate(bool bl); 
private void setRich(bool bl)
{
    if (this.btn.InvokeRequired)
    {
        myDelegate md = new myDelegate(this.setRich);
        this.Invoke(md, new object[] { bl });
    }
    else
        this.btn.Visible = bl;
}

相关文章推荐

C#中线程间操作无效: 从不是创建控件 txtBOX 的线程访问它

delegate void 委托名(方法名); void 方法名() { if(txtBox.invokeRequered) { 委托名 d=new 委托名();...

C#中线程间操作无效: 从不是创建控件 txtBOX 的线程访问它。

delegate void 委托名(方法名); void 方法名() { if(txtBox.invokeRequered) { 委托名 d=new 委托名(); txtBox.invok...

C# 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~

线程间操作无效: 从不是创建控件“”的线程访问它。 听说2003里边不会,我不知道是不是这样的,反正一直都在用05~ 05里会出这个问题的,貌似是为了安全~ 哦,现在知道的解决方法有两个~ ...

C#线程间操作无效: 从不是创建控件" XX" 的线程访问它

转自:http://www.arasplm.net/index.php/zh/community/myblog/c-xx-.html 前些天做的要使用到线程的项目,现在和大家分享一下感受! ...

C#线程间操作无效: 从不是创建控件" XX" 的线程访问它

转自:http://www.arasplm.net/index.php/zh/community/myblog/c-xx-.html 前些天做的要使用到线程的项目,现在和大家分享一下感受! 以下...
  • wlanye
  • wlanye
  • 2013年04月03日 13:20
  • 662

线程间操作无效: 从不是创建控件“label1”的线程访问它。C#定时器

线程间操作无效: 从不是创建控件“label1”的线程访问它。 我在使用线程操作winfrom控件对象的时候报错,后来才发现问题所在:多线程中直接调用界面控件的方法是错误的做法,Invoke 和...
  • kllxyu
  • kllxyu
  • 2013年06月18日 17:35
  • 4985

C#---线程间操作无效: 从不是创建控件“txtreceive”的线程访问它

C#---线程间操作无效: 从不是创建控件“txtreceive”的线程访问它 来源:http://hi.baidu.com/wxy379643276/item/d86aed8f6f87...
  • chidy
  • chidy
  • 2013年08月04日 19:25
  • 5347

c#跨线程访问控件程序集

  • 2016年07月25日 14:17
  • 7KB
  • 下载

C#跨线程访问控件

  • 2013年03月17日 14:28
  • 35KB
  • 下载

C#Winform中多线程访问控件问题,可帮助解决“线程间操作无效: 从不是创建控件“FrmUpdate”的线程访问它。”异常

我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。    首先来看传统方法:        ...
  • ychchhy
  • ychchhy
  • 2011年11月16日 11:31
  • 2617
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#c# 从不是创建控件 的线程访问它。
举报原因:
原因补充:

(最多只允许输入30个字)