私は実行時にいくつかのアセンブリをロードするプロジェクトを行っています。それらのアセンブリごとに、リフレクションを使用して特定のクラスを見つけ、それらをインスタンス化し、それらのメソッドを呼び出します。これはすべて正常に機能していますが、一部の呼び出しでは、プロセスでスタックオーバーフローが発生し、プログラム全体が終了します。ロードしているアセンブリのソースコードを制御できないため、実行しているコードを変更できません。
私が問題を解決しようとしたこと:
メソッドの呼び出しを行うスレッドを割り当て、
timeintervallの後でスレッドを中止しようとしました(これは悪い習慣であることはわかっていますが、コードを変更してフレンドリーに終了することはできません)。ただし、これは機能しません。スレッドは、中止呼び出しを処理するために「スタックオーバーフロー」でビジー状態になっていると思います。スレッドがアクセスできる実際のメモリを減らしてみましたが、stackoverflow-exceptionをキャッチできないため、これは解決策ではありません。プログラムはとにかく終了します(より速く)
質問:
- スレッドがビジー状態になって中止される可能性はありますか?この動作をしているスレッドを中止する方法はありますか?
- どうすれば(制御できない)コードを適切に呼び出すことができますか?
前もって感謝します!