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

这个问题也是纠结了我半天,后来才弄懂!解决办法如下:

方法一:

线程开始的时候加这么一句,OK!

Control.CheckForIllegalCrossThreadCalls = false;

方法二:

委托,每个控件都有个InvokeRequired的属性,判断一下是不是true,是的话进行Invoke操作,OK!

//建立个委托
private delegate string returnStrDelegate();

//搞个最简单滴取值滴方法~
private string returnName()
        {
            return CB_NAME.SelectedValue.ToString();
        }

//判断一下是不是该用Invoke,不是就直接返回
private string returnCB(returnStrDelegate myDelegate)
        {
            if (this.InvokeRequired)
            {
                return (string)this.Invoke(myDelegate);
            }
            else
            {
                return myDelegate();
            }
        }

//别的线程里调用
string _name= returnCB(returnName);
转载请标明出处 http://blog.csdn.net/jasonhds/ 版权所有,翻版必究~谢谢合作



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值