如果我编写一个使用COM对象的类,是否需要实现检测到
RaceOnRCWCleanUp
IDisposable
接口,并在IDisposable.Dispose
中调用Marshal.FinalReleaseComObject
以正确释放它们?如果没有手动调用
Dispose
,那么是否仍然需要在终结器中释放它们,或者GC会自动释放它们? 现在我在终结器中 调用Dispose(false)
,但我想知道这样做是否正确。我使用的COM对象还有一个事件处理程序,该类侦听它。 显然,事件会在另一个线程上引发,那么如果在处理类时触发了该事件,我应该如何正确处理它?