VB.Net,利用Excel程序集,内存泄漏

我的程序本质上是一个使用Excel程序集打开文件并将信息放入数组列表的表单。

运行我的程序多次迭代后,我发现在任务pipe理器中,我仍然有多个excel文件打开,尽pipe它们隐藏在我的任务栏中。 另外“系统和压缩存储器”每次占用更多的空间。

我假设我没有正确地释放内存,但我不知道如何,我现在有:

shXL = Nothing wbXl = Nothing appXL.Quit() appXL = Nothing 

注意:shxl是工作表,wbxl是工作簿,appxl是应用程序。

任何帮助,将不胜感激

这里有一些完整的开放和closures代码

 Private _xlApp As Microsoft.Office.Interop.Excel.Application Private _xlWSheet As Microsoft.Office.Interop.Excel.Worksheet Private _xlWBook As Microsoft.Office.Interop.Excel.Workbook Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click Dim filename As String = "C:\Scratch\Test.xlsx" _xlApp = New Microsoft.Office.Interop.Excel.Application _xlApp.DisplayAlerts = False _xlWBook = _xlApp.Workbooks.Open(filename) End Sub Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click 'close the workbook and quit the app If _xlWBook IsNot Nothing Then _xlWBook.Close() If _xlApp IsNot Nothing Then _xlApp.Quit() 'destroy the objects If _xlWSheet IsNot Nothing Then _xlWSheet = Nothing If _xlWBook IsNot Nothing Then _xlWBook = Nothing If _xlApp IsNot Nothing Then _xlApp = Nothing 'Force garbage collection GC.Collect() End Sub 

另外请注意,如果您没有设置: _xlApp.DisplayAlerts = False那么当您closures工作簿时,如果您有任何未保存的更改,这将等待一个不存在的用户点击“是”或“否”到“保存更改”对话框可能会导致对象四处移动