controlli .NET Timer correre più veloce, mentre la finestra viene ridotta a icona
Domanda
In realtà è una notevole differenza che ho visto, ma non riesco a spiegare. Questi timer sono intervalli impostato su 1 ms (il più basso disponibile), ma mentre è ridotta al minimo, sembra spuntare più veloce? Qualcuno potrebbe spiegare questo fenomeno a me? E, se possibile, a spiegare come riprodurre l'effetto mentre la finestra è massimizzata?
Soluzione
E 'questo un Forms.Timer
?
dubito è in esecuzione più veloce, più probabile che l'evento Timer cottura viene gestita in modo più tempestivo. Mentre minimizzato ci saranno presumibilmente essere meno messaggi gestiti dalla pompa messaggio di The Windows Form, che potrebbe rappresentare una più ampia fetta di tempo per gestire i messaggi del timer. C'è anche l'isue della risoluzione minima Timer.
Se possibile, provare a utilizzare uno degli altri tipi di timer, come ad esempio System.Timers
Il Windows Form componente Timer è singolo-filettato, ed è limitato ad un precisione di 55 millisecondi. Se tu richiedono un timer multithread con una maggiore precisione, utilizzare la classe Timer nel namespace System.Timers.
Rif .
Altri suggerimenti
Se non ricordo male, il minima risoluzione si può uscire da una System.Windows.Forms.Timer
(che presumo è quello che stai usando qui) è di 55 ms. Impostazione a 1 ms essenzialmente significa che le zecche continuamente.
Naturalmente, un timer non garantisce che le zecche arriverà esattamente l'intervallo specificato. Se la vostra applicazione è occupato a fare altre cose (come ridisegnare lo schermo), allora si può prendere un paio di ms, o significativamente più sotto carico pesante. Se il timer è impostato su un intervallo di 1 secondo, non sarà davvero notare questo, ma alla finestra minima (55 ms), si potrebbe.
Quando l'applicazione viene ridotta al minimo, ci sono meno di altri eventi che possono interrompere gli eventi timer prima che sparano.