C#跨线程访问控件[我的记录]

dataGridView.BeginInvoke((MethodInvoker)delegate
{
dataGridView.Rows[newIdx].Cells["CameraID02"].Value = Convert.ToInt32(lstRecord[0].ToString().Trim());
dataGridView.Rows[newIdx].Cells["Result02"].Value = lstRecord[2].ToString().Trim() == "1" ? "OK" : "NG";
dataGridView.Rows[newIdx].Cells["Image02"].Value = lstRecord[3].ToString().Trim();
dataGridView.Rows[newIdx].Cells["F31"].Value = lstRecord[4].ToString().Trim();
dataGridView.Rows[newIdx].Cells["F32"].Value = (lstRecord[5].ToString().Trim() == "1" ? "OK" : "NG");
});

另一种方法:

datagridview.Invoke(new Action(() =>
{
  datagridview.DataSource=XXOO;
}));
原文地址:https://www.cnblogs.com/percent10/p/10648308.html