日期:2014-05-18  浏览次数:20906 次

急!在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级
我是个初学者,请大家帮帮我

现在窗体上有一个DataGrid控件
然后我创建一线程,在线程中读取数据以后
设置DataGrid1.DataSource   =   xxx;

报:在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

应该怎么解决这个问题呢?


------解决方案--------------------
使用Invoke来执行方法就可以了,比如如下的代码就是在一个线程中的操作:

private void btnThread_Click(object sender, EventArgs e)
{
Thread thread = new Thread(this.InfoMessage);
thread.Start();
}

public delegate void InvokeDele();
private void InfoMessage()
{
if (this.InvokeRequired)
{
InvokeDele id = new InvokeDele(this.InfoMessage);
this.Invoke(id);
return;
}
this.dataGrid1.DataSource = obj;
}