如何关闭Windows窗体应用程序和excel.exe进程交互(可能通过垃圾收集器)?

时间:2012-03-02 17:06:17

标签: vb.net excel com office-interop

我可能是唯一仍然以这种方式自动化excel的人,我正在考虑以更好的方式处理COM对象等方式,但是现在我只需要导入Microsoft.Office.Interop.Excel并继续使用它。起初让我感到非常悲痛的是挂起excel.exe进程,但是有很多资源可以在线修复that。在这一点上,我对自己处理它的能力非常有信心。

有一件事我注意到并且想知道关闭Windows窗体应用程序是如何与在后台运行的excel.exe进行交互的,可能更具体地说是垃圾收集器。我写了很多excel自动化projects,并注意到在我运行我的程序.exe后它已经完成,有一个excel.exe进程挂起,直到我从windows窗体应用程序关闭弹出窗口。为什么会这样?

vb.net是否在窗口关闭之前不调用垃圾收集?看一下我写的代码,没有引用“关闭应用程序窗口”事件,垃圾收集器和释放COM对象调用都在代码中,所以在代码执行后我觉得好奇(其中我认为已经调用了垃圾收集,如代码中所示,有一个excel.exe进程一直保持到实际关闭Windows窗体应用程序窗口为止。

没有什么比任何事情更紧急,更好奇,但任何直接的人都会受到赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

确保在代码块末尾的excel对象上调用Quit方法,并且可以进行垃圾收集以获得良好的测量,但它应该在短时间内关闭。我有同样的问题,但发现我必须手动处理。