Как правильно очистить объекты взаимодействия Excel?


Я использую взаимодействие Excel в C# (ApplicationClass) и разместили следующий код в моем предложении finally:

while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { }
excelSheet = null;
GC.Collect();
GC.WaitForPendingFinalizers();

хотя этот вид работ,Excel.exe процесс все еще находится в фоновом режиме, даже после закрытия Excel. Он освобождается только после того, как мое приложение будет закрыто вручную.

что я делаю неправильно, или есть альтернатива, чтобы убедиться, что объекты взаимодействия правильно утилизируются?

30 682

30 ответов: