• ベストアンサー

スレッド制御に関して

C言語の初心者です。 現在、スレッドの勉強をしております。 最近、pthreadをなんとなく理解しつつありますが、 下記の2点に関して試行錯誤しております。 (1)スレッドを周期的に起動したい (2)時間によって起動したい (1)は、例えば30秒毎にスレッドを起動させたい等といった、周期スレッドの生成方法です。今考えているのは、スレッドを生成後、スレッド生成元で30秒間sleepして、2回目のスレッドを起動…。といったイメージを考えております。 (2)に関しても同様で、例えば12時00分00秒にスレッドを生成したいというパターンで、スレッド生成元にて、時間を取得して、その時間が12時00分00秒であればスレッド生成を行うといったイメージを考えております。 上記2案とも初心者なりに考えた案なのですが、他によい案はありませんでしょうか? ご教授頂けますようよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • f_attck
  • ベストアンサー率33% (40/118)
回答No.1

メイン側を30秒間sleepすると、その間メイン側では処理できなく なりますが、OKでしょうか 他だと、タイマースレッドを作っておいてメイン起動時に起こして おいて、イベント登録されると指定時間もしくは指定時間経過後に 登録元スレッドに対してイベントを発行するように作っておけば メイン側を止めずに、色んなユースケースに耐えられるように なると思います。

その他の回答 (1)

  • Lbfuvab
  • ベストアンサー率36% (7/19)
回答No.2

1はメッセージループを自分で処理しているのなら、 SetTimerでWM_TIMERを使う手もありです。(sleepは出来れば避けるべき もしくはf_attckさんのようにスレッドにウィンドウハンドルを渡して 独自メッセージを送ればいいです。 2は別スレッドで時間を計っておき(方法は問いません)時間が来れば送る と言った風にしておけばどうでしょう?

関連するQ&A