1

.NET で Office オートメーションを使用しています。これは、excel.exe プログラムを置き去りにしています。私は修正を知っています-変数を明示的に定義することがすべてです。定義したら、RAM の割り当てを適切に解除でき、GC がそれらをクリーンアップします。

問題は、文字通り何千行ものコードを実行する必要があることです。だから私は疑問に思っています.RAMがまだ割り当てられている変数のリストを表示できる.net(またはサードパーティ)に何らかのユーティリティがありますか?もしそうなら、私はそれらのアイテムをターゲットにして、具体的に割り当てを解除することができます.

ありがとう

ライアン

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 に答える