掲示板一覧   -   トピック一覧
   EA API
     COM API使用後にプロセスが残る場合がある


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
mogass
投稿日時: 2014-4-18 11:40
EA Administrator
投稿: 171

COM API使用後にプロセスが残る場合がある

サポートに頂きましたご質問と回答の要約です。

○ご質問

アドインの実装を進めていたところ、時折EAのプロセスが残る問題が発生しました。

単純なコードですと、
EA.Repository re;
re = new EA.Repository();
if (!re.CreateModel(EA.CreateModelType.cmEAPFromBase,
eaFilePath, 0))
{エラー処理 }
re.Exit();
re=null;

といったコードです。
この時に、EAのファイル作成だけを行うだけだと、Repository.Exit()の呼び出
し後もEA.exeが残ってしまうことがあります。

最終的には数プロセスのEA.exeが立ち上がったままとなりました。
外側の呼び出し元のアプリプロセスが終了すると、引き連れて終了するようです。

確実にEAプロセスを終了する方法はあるでしょうか?

よろしくお願いいたします。

○回答

.Netフレームワークを使用したアプリケーションから
COMのインスタンスを作成した場合、ご質問のように
EAのプロセスが終了しない場合がございます。

この場合、re=null; の後に以下の2文を
追加していただくことで、EAプロセスを終了することが
できるかと思います。

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

ご確認ください。

上記の2文に関しましては、
EAヘルプの「サンプルとテクニック」のページに記載が
ございますので、こちらもご参照ください。


●返信

お知らせいただいた内容を試しました。
ヘルプに従って2回実行したところ、うまく開放+プロセス終了が行われました。

基本的なところを読み飛ばしてしまっていて、大変失礼いたしました。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ