人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: disca
●カテゴリ:コンピュータ 生活
✍キーワード:クラス スレッド ブレーク マルチ 監視
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● makihayato
●40ポイント

http://www.microsoft.com/msj/archive/SFFF.aspx

Win32 Q & A -- MSJ, March 1996

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ