关闭excel文件的方法之间的差异
我一直在使用一些函数,现在我真的在想,它们之间有什么区别。 我知道, xlWorkbook.Close(0)
关闭文件xlAppQuit();
退出Excel应用程序,并Marshal.ReleaseComObject(xlWorkbook);
清理 - 释放COM对象。 但是这在实践中意味着什么? 我无法想象这些差异。 前两个让我的任务管理器中的excel进程消失(那么如何关闭一个工作簿不同于退出,如果他们都杀死了excel进程?),最后一个不会。
你需要记住你调用的这些类是COM对象。 COM使用引用计数。 所以每次在背景中使用它们中的一个时,它都是+ 1的。
要正确清理你需要减少该柜台。 这是通过释放你的引用(wb = null)然后调用Marshall.ReleaseComObject(...)来完成的。
如果你失败了,那么你会引入内存泄漏,因为这些COM对象会一直存在,直到你的应用程序关闭。
链接地址: http://www.djcxy.com/p/35669.html