Control 'XXXX' accessed from a thread other than the thread it was created on
在FORM初始化的时候加入
Control.CheckForIllegalCrossThreadCalls = false;
另一种方法
delegate void DataGridView_Delegate(IEnumerable<CaseInfo> list);
/// <summary> /// 向DataGridView绑定数据 /// </summary> private void DataGridView_DataBind(IEnumerable<CaseInfo> list) { if (dgCaseInfo.InvokeRequired) { DataGridView_Delegate del = new DataGridView_Delegate(DataGridView_DataBind); dgCaseInfo.Invoke(del,list); return; } if (list == null) { dgCaseInfo.DataSource = null; return; } dgCaseInfo.DataSource = new BindingList<ShowCaseInfo>( list.Select(to => new ShowCaseInfo { Age = to.Age, PatientName = to.PatientName, CardId = to.CardId }).ToList()); dgCaseInfo.Columns[0].HeaderText = Resources.MainForm_DataGridView_DataBind_PatientName; dgCaseInfo.Columns[0].Width = 70; dgCaseInfo.Columns[1].HeaderText = Resources.MainForm_DataGridView_DataBind_Age; dgCaseInfo.Columns[2].Visible = false; tssl.Text = Resources.MainForm_BackgroundWorker_DoWork_Present_Complete; }
ERROR:Object reference not set to an instance of an object
如果是在异步中,报此错误,使用第二种方式可解决