AppDomainの強制アンロードができない part2.

早速NyaRuRuが地球にいたころでとりあげて頂いた。多謝。
実はあれからいろいろと試行する中で少々荒技だけど生成したスレッドを強制Abortさせる事を試してみた。
拙作のランチャは他のAppDomainを生成する際にその動作を非同期にしなくちゃならないので(普通そうだよね)まずはスレッドを生成してそのスレッドから該当のAppDomainを生成している。
親のAppDomain(ランチャのAppDomain)がアンロードされる時は捕捉できるのでその際に既に生成しており「まだ生きている」スレッドをAbortするように書いて見た。
これで確かに今までアンロードできなかったと思われるケースもスパッとアンロードできるようになったのだけれどそれでもアンロードできないケースがあるようだ。("ようだ"と書いたのはこの辺はまだ完全に検証できていないのでまた後日にでも)
あとはNyaruruさんの日記によると

とりあえずオフィシャルな解決方式のひとつは,CLR Hosting API 経由でスレッドの abort と AppDomain の unload にタイムアウトを設定することでしょうか.

とある。
CLR Hosting APIかあ..一般的なアプリケーションのコンテキストからコールできるのだろうか... 同等の機能が他のAPI経由で呼び出せるかと共に早速調べてみよう。