- - PR -
VBでのインターバルタイマ
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-02-04 10:52
こんにちわ。
ええっと、IRQとの関係は良く分かりませんが^^; PCによって変わる可能性は否定出来ないと思います。 タイマーコントロールでのイベントは、設定した間隔ごとに メッセージを飛ばしているわけで、 メッセージループは基本的にウィンドウに1つ持っている だけなので(インターフェーススレッドの考え方です。 端折ります^^;)メッセージキューにメッセージが たまっている状態では、タイマーイベントがいつ入るかは 不定です。 なので、精度が必要な場合は向かないと思います。 先のぼくのレスでAPIのマルチメディアタイマーを挙げたのは、 これは独自スレッドを起動しているので、上記の問題は発生 しない(はず)です。(自信なさげですが^^;) 。。が、先のレスでも言いましたが、VBで出来るかは分かりません^^; 長くなってしまいますし、今回の場合はタイマー自体の性能の問題なので 適用できないかもしれませんが、精度が必要な場合の実現方法の例でも、、、 まず、タイマーコントロールのインターバルは必要な間隔よりもずっと短くします。 (ここで、すでに今回の場合はダメというわけですが^^;) そのイベント内でtimeGetTimeなどで時刻を取得し、前回時刻との比較により 時間経過をチェックし、必要な時間が経過した時に処理を行う。 という手順でどうでしょうか? まぁ、これできっちり精度が出る訳ではありませんが^^; |
