3

それは実際に私が見たが説明できない顕著な違いです。これらのタイマーの間隔は1ms(利用可能な最低)に設定されていますが、最小化されているものの、より速く動作するように見えますか?誰かがこの現象を私に説明できますか?そして、可能であれば、ウィンドウを最大化した状態で効果を再現する方法を説明してください。

4

2 に答える 2

3

これはForms.Timer

タイマーの起動イベントがよりタイムリーに処理されている可能性が高いため、実行速度が速いとは思えません。最小化されている間は、おそらくフォームウィンドウのメッセージポンプによって処理されるメッセージが少なくなり、タイマーメッセージを処理するためのより大きなタイムスライスを占める可能性があります。最小タイマー解像度の問題もあります。

該当する場合は、次のような他のタイマータイプのいずれかを使用してみてくださいSystem.Timers

Windowsフォームタイマーコンポーネントはシングルスレッドであり、55ミリ秒の精度に制限されています。より正確なマルチスレッドタイマーが必要な場合は、System.Timers名前空間のTimerクラスを使用してください。

参照

于 2010-01-30T04:05:16.667 に答える
2

私の記憶が正しければ、 (ここで使用しているものと思われる)から得られる最小解像度は55ミリ秒です。System.Windows.Forms.Timer1 msに設定すると、基本的には継続的にティックすることを意味します。

もちろん、タイマーはティックが指定された間隔で正確に到着することを保証するものではありません。アプリが他のこと(画面の再描画など)を行うのに忙しい場合は、さらに数ミリ秒かかるか、高負荷の場合は大幅に長くかかる可能性があります。タイマーが1秒の間隔に設定されている場合、これに気付くことはありませんが、最小ウィンドウ(55ミリ秒)では気付く可能性があります。

アプリケーションが最小化されると、タイマーイベントが発生する前に中断する可能性のある他のイベントが少なくなります。

于 2010-01-30T04:05:04.350 に答える