タイマーについて


kaikyou  2006-01-19 02:11:47  No: 60368  IP: 192.*.*.*

タイマを使って、プログラムを走らせてから
1秒ごとに、何か計算した値をコマンドプロンプト
に出力させたいのですが、可能なのでしょうか?
/*
while(1){ 
 計算処理
  if(1秒たてば){
    printf()
  }
  else  計算処理に戻る  

などのようにできるなら、やり方を教えていただけないでしょうか?

編集 削除
kaikou  2006-01-19 03:58:09  No: 60369  IP: 192.*.*.*

できれば、時間の間隔を自分で指定できる
ようなやり方を教えてください。
お願いします。

編集 削除
KING・王  2006-01-19 08:08:46  No: 60370  IP: 192.*.*.*

精度に関しては適当ですが、とりあえずの方法
○方法1
WindowsならWM_TIMERなどのタイマイベントを用いる。

○方法2
標準Cの範囲なら、ループ内でtime()で取得して、前回の実行時の時間と、
取得した時間を比較して、1秒経過していたら、処理を実行する。

方法2の場合、(標準Cから外れるかもしれませんが)Sleep()などを入れておいた方がよい気がする。

また、計算している裏で別の画面表示や操作を行なうならマルチスレッド化が必要になるでしょう。

編集 削除
KING・王  2006-01-19 08:10:53  No: 60371  IP: 192.*.*.*

> できれば、時間の間隔を自分で指定できるようなやり方を教えてください。

これが抜けていたので追加。

○方法1の場合
ユーザが入力した値で、SetTimer()すればOK

○方法2の場合
処理を実行する条件を、前回の実行時間と取得した時間の差が、ユーザの入力した値の場合に変更すればOK

編集 削除
朱鷺  2006-01-19 08:20:01  No: 60372  IP: 192.*.*.*

マルチメディアタイマーも使っていいなら、timeSetTimerも使えるね

編集 削除