Excel からデータを取得するために Microsoft.Office.Interop.Excel を使用しています。COM オブジェクトをクリアしても、EXEL.EXE のいくつかのインスタンスがバックグラウンドに残ります。以下のコードを確認してください。
finally
{
if (cells != null) Marshal.FinalReleaseComObject(cells);
if (range != null) Marshal.FinalReleaseComObject(range);
if (sheets != null) Marshal.FinalReleaseComObject(sheets);
if (workSheet != null) Marshal.FinalReleaseComObject(workSheet);
if (excelWorkBook != null)
{
excelWorkBook.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(excelWorkBook);
}
if (excelWorkbooks != null) Marshal.FinalReleaseComObject(excelWorkbooks);
if (excel != null)
{
excel.Quit();
Marshal.FinalReleaseComObject(excel);
}
cells = null;
range = null;
sheets = null;
workSheet = null;
excelWorkBook = null;
excelWorkbooks = null;
excel = null;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
どこが間違っているのか教えてください。