ミリ秒の入力を取り、入力が経過時間の最小量であることのみを保証する Sleep() 以外に、c のウィンドウで使用できるより良いスリープ関数を誰かが知っているかどうか疑問に思っていました。私は 1 ミリ秒で通過していますが、実際には 15 ~ 16 ミリ秒の遅延が発生しています。指定されたスリープ時間を正確に設定する方法はありますか?
Schuyler
質問する
6131 次
4 に答える
2
いいえ、そうではありません。プログラムにスリープを指示すると、プロセッサを放棄し、オペレーティング システムに次に何をするかを決定させます。オペレーティング システムが管理下に置かれると、プログラムに別の処理時間を与えるタイミングが決定されます。これが最小値を指定できる理由ですが、OS が特定の時点でプロセスに戻るという保証はありません。
于 2009-06-03T15:15:56.427 に答える
1
スリープは、プロセスが少なくとも nミリ秒間実行されないことを保証するだけであり、正確に nミリ秒間スリープすることを保証するものではありません。多分あなたはタイマーを設定したいですか?またはビジー待機 (つまり、ループで QueryPerformanceCounter をポーリング)。
必要がない限り、このアプローチ(ビジーウェイト)を避けようとしますが、サイクルを燃やしていて、CPUがより低いクロック速度になるのを止めています(つまり、バッテリー寿命を燃やしています)
于 2009-06-04T02:24:14.623 に答える
1
マルチメディア タイマーを調べます。
于 2009-06-03T15:12:41.893 に答える
0
いいえ、ミリ秒が利用可能な粒度のレベルであるため、Windows にはより優れたスリープ機能はありません。睡眠時間を短縮したい場合は、ある種のスピン ロックを実装する必要があります。
于 2009-06-03T15:14:21.530 に答える