2

nanosleep()とを使用するLinuxコードget_clocktime()をWindowsに移植しようとしています。私が読んだ限りでは、Windowsにはそれほど多くのパフォーマンスタイマーはなく、。以外の実際のスリープ機能はありませんSleep()。私はウィンドウを見つけましQueryPerformanceCounterQueryPerformanceFrequencyが、高速スリープ機能で使用するためにそれらをどのように適応させるのでしょうか。私が移植しようとしているコードは、次のStackOverflow投稿にあります:https ://stackoverflow.com/a/13559213/1161270

nanosleep()全体として、Linuxコードを、、get_clocktime()およびを使用するWindowsに移植しようとしていますstruct timespecが、実際に同等のものはないようです。また、スロットル遅延を追加する方法に関する他のアイデアも受け入れています。関数を読みPdhGetFormattedCounterArray()、コンピューターの出力帯域幅をバイト単位で監視するための作業コードがありますが、このデータを使用して、特定のkb/s速度に送信するデータを抑制するための遅延を作成する方法がわかりません。リンクされた投稿で提供されている他の方法を使用したいです。

お時間をいただきありがとうございます。

4

1 に答える 1

0

ほとんどの OS のタイプのスリープの実際の精度は、多くの場合ミリ秒 (またはその倍数) であることに注意してください。より短い期間スリープできるように見えるかもしれませんが、実際には、OS が実際にプロセスをスリープ状態にしないか、スリープ期間が「ティック」です。これは、Linux (カーネル構成による) と Windows の両方に当てはまります。

Microsoft はここでタイムアウトについて説明しています (スリープは単に何も起こらないのを待っているタイムアウトです): http://msdn.microsoft.com/en-gb/library/windows/desktop/ms687069%28v=vs.85%29.aspx#待機関数とタイムアウト間隔

于 2013-02-21T20:46:09.360 に答える