タイマを使って、プログラムを走らせてから
1秒ごとに、何か計算した値をコマンドプロンプト
に出力させたいのですが、可能なのでしょうか?
/*
while(1){
計算処理
if(1秒たてば){
printf()
}
else 計算処理に戻る
}
などのようにできるなら、やり方を教えていただけないでしょうか?
できれば、時間の間隔を自分で指定できる
ようなやり方を教えてください。
お願いします。
精度に関しては適当ですが、とりあえずの方法
○方法1
WindowsならWM_TIMERなどのタイマイベントを用いる。
○方法2
標準Cの範囲なら、ループ内でtime()で取得して、前回の実行時の時間と、
取得した時間を比較して、1秒経過していたら、処理を実行する。
方法2の場合、(標準Cから外れるかもしれませんが)Sleep()などを入れておいた方がよい気がする。
また、計算している裏で別の画面表示や操作を行なうならマルチスレッド化が必要になるでしょう。
> できれば、時間の間隔を自分で指定できるようなやり方を教えてください。
これが抜けていたので追加。
○方法1の場合
ユーザが入力した値で、SetTimer()すればOK
○方法2の場合
処理を実行する条件を、前回の実行時間と取得した時間の差が、ユーザの入力した値の場合に変更すればOK
マルチメディアタイマーも使っていいなら、timeSetTimerも使えるね
ツイート | ![]() |