C # Excel закрыть процесс еще осталось - PullRequest
2 голосов
/ 14 сентября 2011

Я открываю и закрываю книгу Excel для mC # вот так

Microsoft.Office.Interop.Excel.Application oXL = null;
Microsoft.Office.Interop.Excel.Workbook excelWorkbook  = null;

try
{

    excelWorkbook = oXL.Workbooks.Open(MyFile,
                0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
                true, false, 0, true, false, false);

    .....
    ....
    ....

    excelWorkbook.Save();
    excelWorkbook.Close(Microsoft.Office.Interop.Excel.XlSaveAction.xlSaveChanges, Type.Missing, Type.Missing);
    oXL.Quit();
    excelWorkbook = null;
    oXL = null;

}
catch { }

Но в списке задач остался работающий процесс EXCEL.EXE, почему? как мне "убить" все в Excel, когда я закончу? Разве этого недостаточно с ".Quit ()" и поставить ссылку на ноль?

или в куче C # остались какие-то магические ссылки, которых не было разыменованный?

/ Stefan

1 Ответ

3 голосов
/ 14 сентября 2011

Попробуйте это ..

oXL.quit()

// Обратите внимание, OXL по-прежнему указывает на превосходство

System.Runtime.InteropServices.Marshal.ReleaseComObject(oXL)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oXL)
oXL = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...