C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 108 を表示中)
■64129 / )  AppDomainのアンロードタイミング
□投稿者/ SS (1回)-(2012/11/08(Thu) 14:23:23)

分類:[.NET 全般] 

Visual Studio 2010
Framework 3.5
VB.NET
Windows Vista/7

お世話になります。

話の発端は、DLLを動的に呼び出して使用したい という事から始まりまして、
Assembly.CreateInstance すれば良い事が分かったのですが、
呼び出し元のアプリが終了するまで解放できないようなので、
AppDomain を使用してみる事にしました。
( 逐一解放しなければいけないのか? についてはスルーしてください(汗 )
そこで、ネット等で調べてみるとだいたい以下の手順で行えば良い事は分かったのですが、

1. AppDomain 作成
2. 呼び出しDLL インスタンス作成
3. メソッド実行
4. AppDomain アンロード

3と4の間、つまり メソッドの実行終了を待って
AppDomainをアンロードしなければならないと思うのですが、
私が見たどのサンプルも待っていないように見えました。


現状、私が直面している問題は、
呼ぶDLLにはフォームがありまして、3.メソッド実行 で実行される
クラスのメソッドに、フォームをShow() する処理があります。
このフォームはモードレスフォームで、
呼び出し元のアプリに制御を戻す?ようにしたいのです。
(DLLではなくExeではダメなのか?についてはスルーでお願いします)

当然の事ながら、上記手順ではフォームは一瞬で消えて終了します。


今回はモードレスフォームという特殊?な例かもしれませんが、
一般的にメソッドの実行に時間がかかるような場合でも
上記手順(コーディング)で問題ないのでしょうか?

また、メソッドの終了が検知出来るとして、
作成したAppDomainを保持しておいて後でアンロードする事は可能でしょうか?

よろしくお願いします。
返信 編集キー/


管理者用

- Child Tree -