【スレッドセーフ】

マルチスレッド処理においてです。他スレッドの処理に対して監視(安全にブレークさせる)方法。ちなみに現状は、#define IsSignaled(handle) (WAIT_TIMEOUT == ::WaitFor(handlle, 0)) 以外でおねがいいたします。(重い処理に対しての同期クラスの上手な使い方)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/06/28 09:59:52
  • 終了:--

回答(1件)

id:makihayato No.1

makihayato回答回数5ベストアンサー獲得回数02004/06/28 12:35:58

ポイント40pt

私は普段はdiscaさんと同じようにしてスレッドを終了させています。安全にということであれば、これが一番だと思います。でも、これ以外で、重い処理に対してのということであれば、URLにある方法はどうでしょうか。私はこの手法を客先のシステムに組み込んで使用していますが、特に問題は起きていません。他のスレッドから止めたいスレッドに対して直接的に例外を発生させて、その上でクラス内で止めてしまうという趣旨の作りですので、この手法が安全かどうかは議論の余地があると思いますが。ただ、自分が何もしらずに重い処理を延々と実行していて、外部からそのスレッドを止めたいと言うことなら、こういう処理でやるしかないと思いますが。

id:disca

例外throwですか!、なるほど良いですね。考え付きませんでした。たいへん参考になります。

2004/06/28 13:13:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません