0

我在我的 C# 库中使用 ManagementEventWatcher,它被导入(引用)到另一个项目中。我遇到的问题是,在我的应用程序关闭之前,ManagementEventWatcher 必须“停止”和“处置”。我只被允许修改库而不是将实现库的应用程序。

我尝试了以下方法:

public class MyClass:IDisposable ...

进而

 public void Dispose()
        {
            _wmiWatcherRemoved.Stop();
            _wmiWatcherRemoved.Dispose();
        }

但是 Dispose 永远不会被执行。所以应用程序得到以下异常:

COM object that has been separated from its underlying RCW can not be used

有任何想法吗?感谢你付出的努力。

4

1 回答 1

0

我从您的问题的措辞中假设使用您的库的应用程序在关闭时遇到您描述的异常?

如果是这种情况,您可以尝试为 AppDomain ProcessExit 事件注册一个处理程序,在该事件中您将导致Stop()Dispose()在观察程序实例上被调用。

于 2012-09-05T11:52:24.957 回答