2011-07-20 13 views
3

Windows環境では〜1マイクロ秒間スリープ状態になっていますか?多くのスレッドやさまざまなウェブサイトを調査して読んだ後、私はこれが可能であることを知ることができませんでした。スケジューラは制限要因であると思われ、 を1ミリ秒レベルで動作させるので、リアルタイムOSに行かなければ完了できないと私は信じています。windows C++とマイクロ秒スリープの可能性

+2

に位置 Windowsのタイムスタンププロジェクトで発見することができ、あなた自身の質問に答えてきたように私には思えます。私はなぜあなたの言語の選択が本当に重要であるのか分かりません。 –

+0

とはどのようなユースケースですか? –

+0

あなたは忙しく待つことができます。 – Nobody

答えて

1

それはほとんどのポータブルではないかもしれない、と私は、これらの機能を自分自身を使用していませんでしたが、高解像度タイマー、このリンクのセクションとブロック内の情報を使用することが可能であるかもしれない:QueryPerformanceCounter

+0

ありがとうございます、上記のさまざまな提案を見ていきます。 –

1

にもかかわらず、ウィンドウが「リアルタイム」OSでないと主張されているという事実から、マイクロ秒の解像度でイベントを生成することができます。システム時間(file_time)とパフォーマンスカウンタ周波数との組み合わせの使用は、他のplacesで記述されている。ただし、プロセッサの親和性とプロセス/スレッドの優先順位に注意して実装することにより、マイクロ秒の解像度でタイムドイベントに戸口が開かれます。

ウィンドウスケジューラとウィンドウタイマサービスは、システムの割り込みである メカニズムに依存しているため、マイクロ秒はポーリングによってのみ調整できます。マルチコアシステム上の脆弱性 ポーリングはそれほど醜いものではありません。そして、ポーリングは可能な限り最短で の割り込み期間だけ続く必要があります。マルチメディアタイマーインターフェイスは、約1msの間に割り込み周期を にすることができます。したがって、希望の(マイクロ秒の分解能)時間に近​​づくことができ、ポーリングは最大でも1ms持続します。窓、テストコードと豊富な記述のための

マイ実装マイクロ秒の解決時間のサービスはwindowstimestamp.com

+1

あなたが提携している製品/ウェブページを宣伝する場合は、あなたの回答にあなたの所属を開示する必要があります。 – IInspectable

関連する問題