Sleep(1)の代替法

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Sleep(1)の代替法

参考例ありがとうございます

by driedplum » 2006年8月28日(月) 14:10

使いこなすのが難しそうな関数ですが、ともかく面白そうなので
いろいろいじってみます。
ヒントを頂きまして、ありがとうございました。

by イグトランス » 2006年8月24日(木) 18:02

timeSetEvent関数はどうでしょう?
指定した時間が経過した後に指定した関数を呼ぶ(あるいはイベントオブジェクトをセットする)関数です。
精度はtimeBeginPeriod/timeEndPeriod関数を併せて使えば1ミリ秒になります。

Sleep(1)の代替法

by DriedPlumm » 2006年8月24日(木) 16:38

Win32APIが提供する(?間違っていたらすいません)Sleep()関数は、たとえSleep(1)と書いたり、あるいはSleep(18)とか書いても、実際の実行時には、それぞれSleep(15)、Sleep(30)にWindowsが翻訳してしまいます。
要するに、実効精度が15m秒なわけです。

でも、どうしてももっと細かい精度が必要で、たとえば ”5m秒” だけプログラムを眠らせたいときには、何か方法がないのでしょうか?
私がもし全部のプログラムコードをアセンブラで書けるのなら、NOP命令(0x90)を数十個並べるだけでいいのに・・・と思うのですが、実際にはアセンブラは書けないし。

ご存知の方法を教えていただければ、とてもうれしいのですが。どうぞ宜しくお願いします。

なお、「For-Nextループを30000回ほど繰り返せばど5m秒になるでしょ?」というご回答は何卒ごかんべんください。CPUビジーな方法で時間を待たせるのは避けたいのです。

ページトップ