線程間操作無效: 從不是創建控件“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;
}));
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章