1

我在 .NET 中使用办公自动化。它留下了 excel.exe 程序。我知道解决方法 - 这完全是关于明确定义变量。一旦定义,我可以正确地取消分配内存,GC 会清理它们。

问题是,我实际上有数千行代码要处理。所以我想知道:.net(或第 3 方)中是否有某种实用程序能够向我显示我仍然为其分配了 ram 的变量列表?如果是这样,我将能够针对这些项目并专门取消分配它们。

谢谢

瑞安

4

2 回答 2

1

http://www.automatedqa.com/techpapers/net_allocation_profiler.asp

于 2008-12-04T17:44:58.997 回答
0

为了清楚起见,您需要在通过自动化完成使用 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();
}
于 2008-12-04T19:32:07.237 回答