有如下两种方法调用GC
void A ()
{
MSExcel.Application excel = new MSExcel.Application();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
GC.Collect();
}A方法,产生的Excel进程不会在该方法执行完后立即消失。void CreateExcel()
{
MSExcel.Application excel = new MSExcel.Application();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
}Void B()
{
ReleaseExcel();
GC.Collect();
}B方法在执行完后就会将Excel进程释放了,进程消失.
请问这是为什么?谢谢
void A ()
{
MSExcel.Application excel = new MSExcel.Application();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
GC.Collect();
}A方法,产生的Excel进程不会在该方法执行完后立即消失。void CreateExcel()
{
MSExcel.Application excel = new MSExcel.Application();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
}Void B()
{
ReleaseExcel();
GC.Collect();
}B方法在执行完后就会将Excel进程释放了,进程消失.
请问这是为什么?谢谢
WEB提高权限,设置应用程序池的用户标识