按照 MSDN Code Sample的解釋,Excel是屬於 Unmanaged的程式,所佔用的相關資源是不會在一般所撰寫的程式結束時自動回收:
Step9. Clean up the unmanaged COM resource. To get Excel terminated rightly,we need to call Marshal.FinalReleaseComObject() on each COM object we used. We can either explicitly call Marshal.FinalReleaseComObject on all accessor objects:因此,要確保任何情況下能夠確實釋放資源,程式需要加入 finally區段明確清理並依序關閉 Excel COM+物件,也就是說,在程式中曾經使用的 Workbook、Worksheet、Range、Cell,結束前都要使用 Marshal.FinalReleaseComObject()清掉以確保Excel程式能順利關閉。
連Range/Cell都要清除,還可真是挺麻煩的!你可能還想要知道:
沒有留言:
張貼留言