一応,引数は,ミリ秒単位
Sleep()は指定された時間だけ,自スレッドを停止させ,別のスレッドに権限を引き渡す,ってやつ
んが
- Sleep(1);
って,書いても,1ミリ秒待っているわけでなく
最近のWindowsXP&PCの組み合わせでも,10~15ミリ秒ほど最低でもかかるそうな
むむむっ!
こちとら,処理時間30ミリ秒しか,時間もらってないのに
15ミリも持っていかれると,これは,つらい…
なんでも,内部のハードウエアカウンタの設定値の最小の値が,
このあたりの数字になっているそうで
でもまぁ,そこは,Win32
この最低値を変更するAPIを準備してあるそうで
それが,
- timeBeginPeriod()
timeEndPeriod()
だそうな.
timeBeginPeriod()で,最小値をセット
timeEndPeriod()でセットされた値を戻すとのこと
こちら辺りを確認していただければ
ただ,こやつを使うと,パソコン全体の,カウンタ値を書き換えることになるそうなので
ひょっとしたら,他のアプリへの影響も出るかも?だそうです
この書き換え,Windows Media Playerがやっているとのこと
実害は出てないので,たぶん,大丈夫かな?
スレッドの待機にSleep()使っているけど
これで,最小限の待機時間で他のスレッドの監視が出来るかな?



