4

Excel 相互運用機能を使用しています。取得したメソッドの最初にアプリケーションの新しいインスタンスを割り当て、最後にそれを解放しようとしていますが、TaskManager を見ると、まだ Excel が開いているのがわかります。

これはコードです:

クラスメンバー:private Excel.Application _app;

使用法:

 public void MethodApp()
{
  _app = new Excel.Application();
  ....
  ....
  FreeApplicationResources();
}

private void FreeApplicationResources()
{
  _app.Quit();
  Marshal.ReleaseComObject(_app);
}

MethodApp は複数回実行でき、呼び出された回数と同じ数だけインスタンスを開きます。Excel が閉じないのはなぜですか?

4

1 に答える 1

1

以下の順序でも使用されているワークシートとワークブックを解放してみてください。

Marshal.ReleaseComObject(_worksheet);
Marshal.ReleaseComObject(_workbook);
Marshal.ReleaseComObject(_app);
于 2013-10-30T15:22:56.427 に答える