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

我有一个方法,从服务里取数据然后赋值给datagirdview
private void ReadDgv()
{
QM_LabBill.WebService1SoapClient aa = new QM_LabBill.WebService1SoapClient();
dataGridView1.DataSource = aa.getYGDay();
}
然后在窗体加载的时候用线程读取数据
private void FmDgv_Load(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(ReadDgv));
thread.Start();
}
这个时候会报错:线程间操作无效: 从不是创建控件“dataGridView1”的线程访问它。
那么这时候需要往你的方法里用到前台控件的地方加两行如下的代码,具体为啥你们查一下,我查了忘了
private void ReadDgv()
{
QM_LabBill.WebService1SoapClient aa = new QM_LabBill.WebService1SoapClient();
DataTable dt=aa.getYGDay();
this.Invoke(new EventHandler(delegate
{
dataGridView1.DataSource = dt;
}));
}

猜你喜欢

转载自blog.csdn.net/hello_mr_anan/article/details/82224222