我对 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。它抛出 NullReference。我究竟做错了什么?