DataGridView.Invoke throws NullReferenceException
本文关键字:NullReferenceException throws Invoke DataGridView | 更新日期: 2023-09-27 18:34:35
我对 DataGridView.Invoke 有问题。
delegate void CheckMainTableCallback();
static void CheckMainTable()
{
if (Program.MonitorApp.ServersTable.InvokeRequired)
{
CheckMainTableCallback Safe = new CheckMainTableCallback(CheckMainTable);
MonitorApp.ServersTable.Invoke(Safe);
}
else
{
foreach (DataGridViewRow r in MonitorApp.MainTable.Rows)
{
**r.Cells["Load"].Value =
(Servers.Find(
p => p.NAME == r.Cells[0].ToString()
)
.GetSystemValue("% Proccess Usage"));** // exception here
}
}
}
所以我调用 CheckMainTable 从 ServersTable 获取值(由另一个线程使用(到我的 MainTable。并抛出空引用。我做错了什么?
因此,跟踪这样的异常是一个逐个的过程。考虑以下事实:这行代码:
r.Cells[0].ToString()
如果r.Cells[0]
是null
,可以扔.
此外,如果Servers.Find(...
的结果null
,.GetSystemValue
会抛出.