掲示板一覧 - トピック一覧 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回実行したところ、うまく開放+プロセス終了が行われました。 基本的なところを読み飛ばしてしまっていて、大変失礼いたしました。 ありがとうございました。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




