c #datagridview红叉

我有一个datagridview和datatable。 我使用datatable作为datagridview的数据源。 我使用如下的线程添加和更新数据。 如果我完成了数据,我将其删除。 但两次在datagridview前面有一个大的红色x 。 我找不到原因? 以下是我的样本。

注意:这并不总是发生,我只有两次这个错误,但我需要处理! 提前致谢。

Thread listData; DataTable dt = new DataTable(); Form1_load() { dataGridview.DataSource = dt; } public void ListData() { foreach(var item in data) { if(item.delete) { var row = dt.Rows.Find(item.id); if(row != null) { row.Delete();} continue; } listData = new Thread(delegate() { InsertOrUpdateData(item.Id); }); listData.Start(); listData.Join(); } } public void InserOrUpdateData(int id) { // Here I retrieve some data from database // and insert or update to the datatable // like dt.Rows.Add(fields) and dt.Rows.Find(id)["fieldName"] = "new Value" } 

您需要使用Invoke方法

 if (gridView.InvokeRequired) gridView.Invoke(new MethodInvoker(() => gridView.DataSource = YOUR_DATASOURCE)); else gridView.DataSource = YOUR_DATASOURCE;