- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マルチスレッドについて)
マルチスレッドについての問題
このQ&Aのポイント
- マルチスレッドでのロード画面の描画と処理がうまくいかない状況に陥っています。
- 特に、ロードが途中で止まってしまうことや、ロード画面を描画できない問題が発生しています。
- 問題の原因は、特定の関数である可能性があり、その詳細についてのご助力をお願いしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ロード画面を描画できません。 GaugeDrawというのがどういう処理なのか分からないのでなんとも言えませんが、ダブルバッファにしていると仮定すれば、描画更新処理がなされていないように思います。 >ロードが途中で止まる については不明です。途中まで読み込まれているのをデバッガで確認できているなら そのロード関数(loadthreadかな)に問題があるでしょうね。
その他の回答 (1)
- salsberry
- ベストアンサー率69% (495/711)
回答No.1
上記のコードだと、threadConditionがTHREAD_RUNNINGでgraphloaded_flgがFALSEの間プライマリスレッドがビジーループになってしまいます。 graphloaded_flgの値はセカンダリスレッドが変更するのだと思いますが、プライマリスレッドにCPU時間を取られてセカンダリスレッドの実行がなかなか進まなくなっている可能性があります(特にCPUが1コアしかない場合)。 プライマリスレッドでgraphloaded_flg!=TRUEのときに100ミリ秒くらいスリープしたらどうなりますか?
お礼
プライマリスレッドにスリープを入れてみたところロードのほうは上手くいきました。 ご助言ありがとうございます。