1:对线程安全限制不高的程序直接可以用
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
取消捕获对错误线程的调用,但可能会遇到不可预知的结果。
2:使用委托代理
先根据实际情况定义一个委托
public delegate void ControlEventHandler(string value);
再定义一个代理对象
private void DO(string value)
{
MessageBox.Show(value);
}
在主程序中
private void button1_Click(object sender, EventArgs e)
{
Thread _thread = new Thread(ControlShowContent);
_thread.Start("ThreadControlTest");
}
private void ControlShowContent(object sender)
{
Thread.Sleep(2000);
this.Invoke(new ControlEventHandler(DO), sender);
}