Frage

Es ist eigentlich ein merklicher Unterschied, dass ich gesehen habe, aber nicht erklären kann. Diese Timer haben Intervalle auf 1ms eingestellt (die niedrigste verfügbar), aber während es minimiert ist, so scheint es, schneller ticken? Könnte jemand dieses Phänomen mir das erklären? Und wenn möglich, erklären, wie man den Effekt zu reproduzieren, während das Fenster maximiert wird?

War es hilfreich?

Lösung

Ist das ein Forms.Timer?

Ich bezweifle es läuft schneller, desto wahrscheinlicher, dass der Timer Feuerungsereignis wird in einer fristgerechten Weise gehandhabt wird. Zwar gibt es minimiert wird vermutlich weniger Meldungen durch die Form Fenster des Nachrichtensystem behandelt werden, die für eine größere Zeitscheibe erklären könnte die Timer-Nachrichten zu verarbeiten. Es besteht auch die isue der minimalen Timer Auflösung.

Falls zutreffend, versuchen Sie eine der anderen Timer-Typen verwenden, wie System.Timers

  

Die Windows Forms Timer-Komponente ist   Single-Thread, und ist auf eine   Genauigkeit von 55 Millisekunden. Wenn du   erfordern einen multithreaded-Timer mit   eine größere Genauigkeit, verwenden Sie die Timer-Klasse   im System.Timers Namespace.

Ref .

Andere Tipps

Wenn ich mich richtig erinnere, die Minimum Auflösung, die Sie von einem System.Windows.Forms.Timer aussteigen können (was ich davon ausgehen, ist das, was Sie verwenden hier) beträgt 55 ms. Setzen auf 1 ms im Wesentlichen bedeutet, dass es tickt kontinuierlich.

Natürlich ist ein Timer nicht, dass Zecken garantiert genau das angegebene Intervall ankommen. Wenn Ihre App mit anderen Dingen beschäftigt sind (wie der Bildschirm neu gezeichnet), dann kann es noch ein paar ms dauern, oder deutlich mehr unter hohen Last. Wenn der Zeitgeber auf ein Intervall von 1 Sekunde eingestellt ist, wird man nicht wirklich dies bemerken, aber im Minimum Fenster (55 ms), Sie könnten.

Wenn die Anwendung minimiert wird, gibt es weniger andere Ereignisse, die die Timer-Ereignisse unterbrechen können, bevor sie feuern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top