我正在尝试创建一个mmc管理单元,其中包括接收和显示从我的服务中激发的日志事件。我已经创建了观察程序,它正确地触发了,但是当我尝试向mmclistview添加节点时,我得到了一个comException,它说“com对象已经从它的底层rcw中分离出来,不能使用”。
以下是相关代码:
private void LogEvent_EventArrived(object sender, EventArrivedEventArgs e)
{
LogEvent logEvent = new LogEvent(e.NewEvent);
if (SnapIn.InvokeRequired)
{
object[] args = new object[] { logEvent };
SnapIn.Invoke(new ManagementAction(AddEvent), args);
}
else
AddEvent(logEvent);
}
LogEvent类是一个简单的类,它可以将ManagementBaseObject属性转换为易于编码的类型安全属性。addEvent方法完成将logEvent对象添加到mmclistview的resultNodes列表的实际工作。
我提到的异常实际上是在被激发的第二个事件上调用的,并且似乎是在调用invokeRequired时发生的。我不知道这里到底发生了什么。有什么想法吗?