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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top