■13054 / ) |
Re[2]: VB.NETマルチスレッドの名前指定と終了 |
□投稿者/ モー (3回)-(2008/01/23(Wed) 22:34:40)
|
■No13047 (シャノン さん) に返信
> どうも、現在のプロセス中の Thread オブジェクトを列挙する方法は無いみたいです。 > また、スレッドの強制終了というのは望ましいことではありません。 > スレッドは、継続フラグが立っている限りループ処理して、継続フラグがOFFになったら、スレッドプロシージャ(Threadクラスのコンストラクタに渡したデリゲートに結びつくメソッド)からReturnするという形で自然に終了すべきです。 > TaskClassのメンバ変数として、スレッド名と継続フラグのペアを用意しておき、各スレッドプロシージャは、ループを1回終える度にそのペアを自分のスレッド名で参照して、フラグがOFFになっていたらReturnするというのが良いのではないでしょうか。
シャノンさんありがとうございます。
強制終了が好ましくないことは承知しておりますが、実際問題として10個のスレッドを同時に動作している最中に そのうちの1個だけがフリーズした場合にそれを終了させ、残りの9個は動作させ続けたいのです。
またそのフリーズしたスレッドからは信頼できる情報が取得できるとは限らないので、外部から強制終了するしかないと思います。
そうした場合に、ボタンイベントで外部からthread1.Name等を用いて???.Abort()のような記述で終了させられないかと悩んでいます。 もし代替案や同等の記述がありましたら教えて頂けませんか?
|
|