在这里需要您的帮助。 我想做什么? 我基本上是对定义的IP范围发出SNMP请求,并在它们可访问/可访问的情况下将它们显示在DataTable上。我能够发出作为单独任务运行的SNMP请求,但是无法使用结果更新DataTable。作为gridControl在其自己的线程上运行。
请帮助。我在下面粘贴我的代码。
packets = rdpcap('file.pcap')
tcpPackets = []
for packet in packets:
if packet.haslayer(TCP):
tcpPackets.append(packet)
输出:-错误如下图所示 参数2:无法将测试转换为System.Action
答案 0 :(得分:0)
您可以简化代码并替换
foreach (var el in result)
{
string[] obj = new string[2];
obj[0] = ipAddress;
obj[1] = el.Data.ToString();
MethodToAdd(obj);
}
与
foreach (var el in result)
{
gridView1.GridControl.BeginInvoke((Action) (() =>
{
gridView1.AddNewRow();
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[0], "1");
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[1], ipAddress);
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[2], "3");
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[3], "4");
gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[4], el.Data.ToString());
gridView1.UpdateCurrentRow();
}));
}
在BeginInvoke
上呼叫GridControl
,并在那里处理所有事情。