这个问题也是纠结了我半天,后来才弄懂!解决办法如下:
方法一:
线程开始的时候加这么一句,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/
版权所有,翻版必究~谢谢合作