3

簡単な C# コンソール プログラムで Acrobat.dll を参照し、Acrobat を実行するための数行のコードを記述しました。

CAcroApp mApp = new AcroAppClass();
Console.WriteLine("Acrobat is running");
bool bClose = mApp.CloseAllDocs();
bool bExit = mApp.Exit();

ただし、CloseAllDocs() は true を返しますが、Exit() は常に false を返します。

それに応じて、タスク マネージャーで実行中の Acrobat プロセスを引き続き確認できます。

ただし、プログラムが終了すると、プロセスも自動的に強制終了されます。

プログラムを終了せずに、プログラム内から Acrobat プロセスを閉じることができるようにするにはどうすればよいですか?

4

1 に答える 1

0

私の経験から、Acrobat プロセスは、関連するすべてのオブジェクトがガベージ コレクションされた場合にのみ終了します。コレクションを強制するには、次のコードを使用します。

GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();

注: ガベージ コレクションは、関連するオブジェクト (mApp など) がスコープ内にない場合にのみ機能します。

于 2013-04-15T14:04:00.313 に答える