ジオプロセシングを行うクラスライブラリを作成しました。アドインは、非同期プロセスであるクラスを呼び出します。スレッドがSTAであり、arcobjectsがスレッドセーフであること(つまり、アドインから渡されない)であることを確認しました。すべてのアークオブジェクトはスレッド内に作成されます。
これはクラスライブラリであるため、winforms UIにアドインとしてラップしました。コードの両方のセットはまったく同じであり、テストはまったく同じデータを使用して実行されました。winformsとアドインの両方でコードが完成し、望ましい結果が得られ、メモリリークは明らかではありません。アドインの場合、この時点ではマップ期間との相互作用はなく、winformsコードにはマッピングまたは表示要素もありません。
UIの更新は、アドインとUIの両方の進行状況ダイアログの更新のみです。アドインはドッキング可能なウィンドウ(ユーザーコントロールUI)を使用しています。
私が見ている問題は、ライブラリがアドインから呼び出されると、コードの実行がwinformsアプリケーションから呼び出される同じコードよりも5倍遅いということです。
なぜこれが発生しているのか、どこを見ればよいのかについてのアイデア
Activator.CreateInstance
ていnew
ますか、それとも一緒に作成していますか?