1

System.Windows.Forms.Timerホストアプリケーションとシステム全般にどのように影響するか知っている人はいますか?

スレッド化されたバックグラウンド ループの CPU 使用Timer率は非常に高く、ティック レートが非常に高い場合、Windows タスク マネージャーでは効果がありません。

ティックレートの高いタイマーは、Windows メッセージ ループを混乱させますか?

4

2 に答える 2

3

「高ティックレートタイマー」を定義します:)。

WM_TIMER に依存するタイマー コンポーネント (Windows.Forms など) の問題は多岐にわたります。

  • 50ミリ秒よりも優れた解像度を取得することはできません。
  • システムに負荷がかかっている場合 (たとえば、大量の再描画、RDP リンクでの実行など)、間隔をどれだけ短く設定しても、500 ミリ秒以上ごとに WM_TIMER メッセージが表示されることがあります。
  • WM_TIMER メッセージは合成メッセージであり、メッセージ キューが他のメッセージでいっぱいになると、長時間アプリケーションにまったく配信されない可能性があります。
  • タイマー メソッドの実行に 1 タイマー間隔よりも長い時間がかかる場合、タイマーはメッセージを「スキップ」します。つまり、最初のメッセージから戻るまで、別の WM_TIMER メッセージを受け取ることはありません。つまり、2 つの WM_TIMER メッセージを順番に 1 つずつ取得することはありません。
于 2008-12-01T21:08:10.320 に答える
1

全体として、アプリケーション内でタイマー コンポーネントを使用することによる多くのマイナス面に気づいていません。他の方法よりもはるかに効果的で、リソースの面でも優れています。

I find that this Timer Comparison article from microsoft is also helpful when comparing these types of things.

But the long and short of it is that they don't appear to clutter up much.

于 2008-12-01T20:58:10.810 に答える