您的位置:首页 > 其它

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

2013-12-18 21:01 281 查看
这个问题也是纠结了我半天,后来才弄懂!解决办法如下:

方法一:

线程开始的时候加这么一句,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/版权所有,翻版必究~谢谢合作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐