2012-11-13 70 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