掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
スレッドを安全かつ確実に停止するには? (ID:72237)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
tetrapodさんの発言をやや補足すると、 本件のように、別々のスレッドで相互に参照するデータは volatile 宣言されていなければなりません。 コンパイラはvolatileでない変数は、同一スレッド内の 大域的に変化しないものとして、キャッシュやレジスタに 一時保管した変数と同一視して最適化してしまいます。 ある変数を「必ず当該のアドレスからロードしなおす」ためには、 つまり、キャッシュされないその時の実データを参照するには volatile宣言されている必要があります。本件の場合 //停止用フラグをグローバル変数で宣言 volatile BOOL g_fStop = FALSE; とすべきですね。 さて、スレッドの状態変化を感知する方法として、 より一般的にはイベントを使います。 この方法は瀬戸っぷさんの発言にある通りです。 ややコードが複雑化しますが、一般的である分 他人にはわかりやすいかもしれません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.