0
有什么办法来运行代码时,COM对象是即将从RCW断开没有实现IDisposale接口和显式调用MyObject.Dispose在客户端代码?有没有什么办法来处理COM对象从RCW断开?
下面的代码无法正常工作。当程序进入Finalize子程序时,ExcelApplication已经与RCW断开连接,并且出现错误。我明白为什么会发生,但我想得到一个解决方案。
我希望把它的工作方式如下:当最后一个托管引用被释放,COM对象断开连接之前执行从最终确定的子代码。
我的问题是 - 是否有可能在所有的,如果它是那么我该怎么处理类中这个事件,而不需要从外部显式调用敲定?
非常简单的类:
Public Class ExcelRunner
Dim ExcelApplication As Excel.Application
Public Sub New()
ExcelApplication = New Excel.Application
ExcelApplication.Visible = True
End Sub
Protected Overrides Sub Finalize()
MyBase.Finalize()
ExcelApplication.Quit()
End Sub
End Class
此类用于上形式 - 只是一个单一的线
昏暗ExcelRunner作为ExcelRunner =新ExcelRunner
然后我关闭窗体和接收错误。
感谢
是的,我希望得到它发生之前通知的可能性。 – xll 2012-02-15 23:27:22
@xll不幸的是,这是不可能的。 – JaredPar 2012-02-15 23:28:32