我的Windows应用程序崩溃,因为后台线程即使在表单被处理后也试图更新表单。我的代码如下
if (IsDisposed || dataGridIncidentView.IsDisposed)
return;
if (dataGridIncidentView.InvokeRequired)
{
dataGridIncidentView.Invoke(new MethodInvoker(delegate { rowIndex = dataGridIncidentView.Rows.Add("val1","val2"); }));
}
else
{
rowIndex = dataGridIncidentView.Rows.Add("val1", "val2");
}
事件日志中的错误是:
由于未处理的异常,该流程已终止。例外 信息:System.InvalidOperationException Stack:at System.Windows.Forms.DataGridViewRowCollection.AddInternal(布尔, System.Object [])at System.Windows.Forms.DataGridViewRowCollection.Add(System.Object的[]) ..... ..... .....
我对isyncCallBack函数进行了IsDisposed检查。但所有这些检查都没有处理所有情况。任何人都可以建议我,如何解决它?
谢谢,
阿比纳夫
答案 0 :(得分:0)
您需要在代理中进行IsDisposed
检查。
IE:
delegate {
if (!IsDisposed) rowIndex = dataGridIncidentView.Rows.Add("val1","val2");
}