- 408 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 21:33:20 ]
- >>397 >>403
タイマーが15ms間隔でしか発動しないのはWindowsの仕様。 パラメータでは1ms単位の数値が設定できるけど、実際の動作は約15.5ms間隔に切り上げられる。 TimeBeginPeriodを使えば間隔を詰めることはできるけど、実際に試してみると、 最短の間隔がせいぜい2ms程度で、それより長くなることもある。 それにTimeBeginPeriodには副作用があって、他のアプリがたまたまTimeBeginPeriodを再設定してしまうと、 そのマシンで動いているすべてのアプリが影響を受けてしまう。 >>375でVistaは1msてのは、たまたま何かのアプリがTimeBeginPeriodをいじってただけの可能性が高い。 そもそもSleep関数の動作は「少なくとも」指定した時間経過、だから、どれだけオーバーするかは運次第。 ただしこれはVistaまでの話で、Windows7ではタイマー関係がようやく強化される予定なので、 どうしても2ms以下の間隔を死守したいならWindows7を使えばすんなり解決するかもしれない。
|

|