closuresexcel文件的方法之间的差异

我一直在使用一些function,现在我真的想知道,它们之间有什么区别。 我知道, xlWorkbook.Close(0)closures文件, xlAppQuit(); 退出Excel应用程序,并Marshal.ReleaseComObject(xlWorkbook); 清理 – 释放COM对象。 但是这在实践中意味着什么呢? 我无法想象其中的差异。 前两个让我的任务pipe理器中的excel进程消失(那么如何closures一个工作簿不同于退出,如果他们都杀死了Excel进程?),最后一个不是。

你需要记住你调用的这些类是COM对象。 COM使用引用计数。 所以每次你在背景中使用其中的一个+ 1的。

要正确清理你需要减less柜台。 这是通过释放你的引用(wb = null),然后调用Marshall.ReleaseComObject(…)来完成的。

如果你失败了,那么你会引入一个内存泄漏,因为这些COM对象会一直存在,直到你的应用程序closures。