(更新:这不是
Why does Microsoft.Office.Interop.Excel.Application.Quit() leave the background process running?
,这个问题是关于当出现异常时如何从内存中释放excel)
var myExcelApp = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbooks AllWorkbooks= xlApp.Workbooks;
Excel.Workbook MyWorkBook=
Excel.Worksheet MySheet=
MyWorkBook.Close(false, file);
myExcelApp.Quit();
Marshal.FinalReleaseComObject(myExcelApp );
除非抛出异常,然后Excel会在后台逗留,并且必须使用任务管理器将其关闭,否则这一切正常。
using
方块,还是我应该像这样把所有东西都围起来?
Excel.Workbooks AllWorkbooks= null;
Excel.Workbook MyWorkBook=null;
Excel.Worksheet MyWorkshet=null;
Excel.Application myExcelApp=null;
try{
}
catch{
MyWorkBook?.Close(false, file);
myExcelApp?.Quit();
Marshal.FinalReleaseComObject(myExcelApp );
}
谢谢