我有一个真正的痛苦的问题,而Excel.Application()不想被释放,无论如何。即使在随后立即实例化和释放新类之后,它仍然会出现在进程列表中。
if (_ExcelApp == null)
_ExcelApp = new Microsoft.Office.Interop.Excel.Application();
Dispose();
public void Dispose()
{
if (_ExcelApp != null)
{
try
{
_ExcelApp.Quit();
Marshal.FinalReleaseComObject(_ExcelApp);
}
catch (Exception) { }
_ExcelApp = null;
}
}请帮帮我!
发布于 2016-11-01 12:03:21
它没有发布,因为并不是所有与_ExcelApp相关的COM对象都已发布。如果你提供了所有的代码,它可能会更清楚。
Workbooks wb =_ExcelApp.Workbooks;
Workbook book = wb.Add();然后在“尝试捕捉”中:
try
{
book.Close();
Marshal.ReleaseComObject(book);
wb.Close();
Marshal.ReleaseComObject(wb);
_ExcelApp.Quit();
Marshal.FinalReleaseComObject(_ExcelApp);
}
catch (Exception) { }
_ExcelApp = null;
}_ExcelApp.WorkBooks.Add();创建新的WorkBook,而不释放该对象。此外,它还创建工作簿对象,该对象也必须发布。
正如我前面提到的,如果您显示所有代码(当然,如果可能的话),情况会更好。
https://stackoverflow.com/questions/40359174
复制相似问题