ウィンドウが最小化されている間、.NETタイマーコントロールは、より高速に実行します
質問
これは実際に私が見てきたことを顕著な違いですが、説明することはできません。これらのタイマーは、間隔が(最低利用可能)1ミリ秒に設定されているが、それが最小化されますが、より速くダニのようですか?誰も私には、この現象を説明できますか?そして可能であればは、ウィンドウが最大化されている間効果を再現する方法を説明します?
解決
これはForms.Timer
ですか?
私はタイマー発射イベントは、よりタイムリーに処理されている可能性が高く、より速く実行されている疑い。最小化しながら、おそらくタイマーメッセージを処理するために、より大きなタイムスライスを説明することができるフォームウィンドウのメッセージポンプによって処理以下のメッセージがあるでしょう。最小タイマ分解能のisueもあります。
該当する場合には、そのようSystem.Timers
Windowsは、タイマーコンポーネントでフォーム シングルスレッド、およびこれらに限定されています 55ミリ秒の精度。もし、あんたが とマルチスレッドタイマーを必要とします より高い精度、Timerクラスを使用します System.Timers名前空間のます。
参考に。
他のヒント
は、あなたが(私はあなたがここで使用しているものであると仮定)System.Windows.Forms.Timer
から抜け出すことができます。の最小の分解能は55ミリ秒です。 1ミリ秒に設定すると、基本的にそれが継続的にダニを意味します。
もちろん、そのティックを保証するものではありませんタイマーは、指定された正確間隔で到着します。あなたのアプリが(画面を再描画のような)他のことをやってビジー状態である場合、それはより多くの数ms、またはかなり多くの重い負荷の下がかかる場合があります。タイマーは1秒の間隔に設定されている場合、あなたは本当にこれに気づかないだろうが、最低限の窓(55ミリ秒)で、あなたは可能性があります。
は、アプリケーションが最小化されると、彼らの火の前にタイマーイベントを中断することができ、より少ない他のイベントがあります。