2012-11-13 36 views
1

当我使用microsoft.office.interop.excel创建Excel文件时,我总是在最后调用quit命令。但是,如果我查看Windows任务管理器的进程列表,我会更清楚地看到该进程仍然存在,并且在一段时间后我最终得到了一堆进程。microsoft.office.interop.excel保留在进程列表中

我想这在正常情况下并不是那么多问题,但我仍然希望能够防止每次都发生这种情况。

有没有办法做到这一点?

我不能继续并杀死所有的Excel进程,因为其中一些可能确实是应用程序运行,我无法真正了解这两者之间的区别。

谢谢。

+3

大概已经问过了:http://stackoverflow.com/questions/158706/how-to-properly-clean-up-excel-interop-objects – NeverHopeless

+0

你说得对。我会关闭它。 –

+0

我问了一个类似的问题 - http://stackoverflow.com/questions/12916137/best-way-to-release-excel-interop-com-object - 希望这会有所帮助。 –

回答

3

臭名昭着的罪犯(自动化)!要完全关闭该过程,请为所有Word和Excel对象调用Marshal.FinalReleaseComObject({com object})

+0

它是否仍然需要我强制执行“否2点“规则? –

+0

此方法与在直到它的循环中调用ReleaseComObject相同。0一站式购物!打开,使用,退出,Marshal.Final .....,你不需要GC.Collect。我已经对此进行了广泛的测试。 – OneFineDay