私は、タイムアウト期間として10msなどの低い値でWin32でSetTimerメソッドを試していました。私は500タイマーのイベントを取得するのにかかった時間を計算し、それが約5秒になると予想しました。驚いたことに、私は、約16msでタイムアウトしていることを意味するこれらの多くのイベントを取得するのに約7.5秒かかります。タイムアウト期間に設定できる値に制限はありますか(MSDNでは何も見つかりませんでした)?また、私のシステムで実行されている他のプロセスは、これらのタイマーメッセージに影響しますか?MFC/Win32のタイマーメッセージ
答えて
WindowsはリアルタイムOSではなく、この種の精度(10 ms間隔)を処理できません。そのことを言って、there are multiple kinds of timersといくつかは他のものよりも優れた精度を持っています。
OnTimerはWM_TIMER
メッセージに基づいています。これは、低いメッセージ優先度です。つまり、待機中の他のメッセージがない場合にのみ送信されます。
またMSDNあなたは関係なく、スケジューラがタイムクォンタムを尊重することの10
あるUSER_TIMER_MINIMUM
未満の間隔を設定することができないことを説明します。
システムタイマーの細かさを1msに変更することができます。これはMIDI処理を目的としています。
基本的には、w2kでの私の経験は、要求された待機時間が13ms未満であれば、0msと13msの2つの値の間でランダムに振動する待機を返すということです。それよりも長いタイマーは一般に非常に正確です。あなたの500のタイマーイベント - いくつかは0msで、13msは13msでした(13msがまだ正しいと仮定します)。あなたは時間不足に終わった。
前述のように - ウィンドウはリアルタイムOSではありません。特定の時間に何かをしてそれを期待することを頼むことは、愚かな用事です。タイマーを設定すると、可能な限り時間が経過した後すぐにWM_TIMERイベントを発生させるようウィンドウがきれいに呼び出されます。これは、他のスレッドが処理された後である可能性があります。したがって、WM_TIMERイベントを実際に見る時間は現実的には予測できません。あなたが知っているのは>あなたが設定した時間です。 Checkout this article on windows time
- 1. は削除できないWM_TIMERメッセージ
- 2. 他のフォームのページのメールフィールドのみのDeviseへの登録
- 3. 2つのdivの中の1つのdivの中のテキストの下に
- 4. FacebookのグラフAPIのためのphpのgetLoginUrlのためのPythonのequivelant
- 5. のAdobeのFlex 4のテキストの高さ
- 6. キャスト "のconstのvoid *" に "のconstのchar *"
- 7. netbeansのJtableの個々の列の幅
- 8. のRuby/Railsの当量のPHPのget_meta_tags
- 9. QTreeViewの特定のインデックスのカスタムテキストの色
- 10. EmacsのRubyのメソッドのパラメータのインデント
- 11. アンドロイドアプリのリストビューの複数のテキストの色
- 12. のmod_wsgiのpython2.5のUbuntu 11.04の問題
- 13. JTreeの非リーフノードの後の空の行
- 14. Theme.Holo.Lightの問題のオートコンプリートドロップダウンアイテムのテキストの色
- 15. のRuby/Railsの/ RSpecの - ActiveRecordの:: AssociationTypeMismatch:
- 16. コンストラクタの引数の後のこのステートメント
- 17. (Unixの/ Pythonの)アクティビティモニタの%のCPU
- 18. WP7のリストボックスのTextBlockのテキストの整列
- 19. のJavaのJOptionPaneのデフォルトのテキストは
- 20. 私のアプリケーションのためのIphoneのバックアップ
- 21. Macのネットワークのpingのソースコードのコンパイルエラー
- 22. 子テーブルの列のDatagridのハイパーリンクのリンク
- 23. Gitのsymlinkのreadlink:APIの "cat .git/HEAD"の
- 24. VS2010のローカルモードのReportViewerの空のデータ
- 25. Readthedocsの私のコードのためのImportError
- 26. Magentoの複数のカスタムモジュールのコントローラーのオーバーライド
- 27. のPHPの.htaccessのmod_rewriteの問題
- 28. のasp.netのDropDownListのAutoPostBack URLの問題
- 29. ViewPagerのその他の問題の例
- 30. JavaScriptのhtmlエディタのカーソルのフォーカスマウスのフォーカス
はい、0ミリ秒のイベントもありました。 – Naveen