我在 .NET 中使用办公自动化。它留下了 excel.exe 程序。我知道解决方法 - 这完全是关于明确定义变量。一旦定义,我可以正确地取消分配内存,GC 会清理它们。
问题是,我实际上有数千行代码要处理。所以我想知道:.net(或第 3 方)中是否有某种实用程序能够向我显示我仍然为其分配了 ram 的变量列表?如果是这样,我将能够针对这些项目并专门取消分配它们。
谢谢
瑞安
为了清楚起见,您需要在通过自动化完成使用 Excel 后显式退出 Excel。如果您不这样做,即使您的变量超出范围并且垃圾收集运行,实例也会继续运行。我相信它 Quit() 的命令:
Excel.ApplicationClass excel = new Excel.ApplicationClass();
//do some work with Excel
excel.Quit();
我建议您使用 try/catch/finally 来执行此操作
Excel.ApplicationClass excel = null;
try
{
excel = new Excel.ApplicationClass();
//do some Excel work
}
catch(Exception ex)
{
//log exception
throw;
}
finally
{
if(excel != null)
excel.Quit();
}