您的位置:首页 > 编程语言 > C#

Exception:线程间操作无效: 从不是创建控件的线程访问它 解决方案

2013-08-07 10:57 513 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 多线程 线程
相关文章推荐