2011-10-25 10 views
5

He utilizado el temporizador y lo encontré muy útil al tomar decisiones en segundos o milisegundos. Ahora tengo fuertes sentimientos de que el funcionamiento continuo del temporizador aumenta gradualmente el consumo de ciclos del procesador.¿El 'temporizador' requiere más potencia de CPU?

He creado una aplicación (C#) y utilicé 'timer tick' para ejecutar 'tres' instrucciones por 1000 milisegundos (1 segundo) y noté que después de 5 minutos la aplicación consumía 5% de la potencia de la CPU y 10% después de 10 minutos.

Si este progreso se mantiene constante, ¿qué sucederá después de 4-5 horas si ejecuto mi aplicación en segundo plano?

¿Debo evitar el uso excesivo del temporizador?

private void currentTime_Tick(object sender, EventArgs e) 
{ 
    label1.Text = DateTime.Now.ToString("HH:mm:ss tt"); 
    label2.Text = dt.AddSeconds(i).ToString("HH:mm:ss"); 
    i++; 
} 
+0

¿qué tipo de temporizador? –

+0

No creo, estoy relacionado con el uso del temporizador. Debe haber algo en ** su ** código –

+0

¿Está seguro de que es el temporizador y no otro código? ¿Quizás referencias que no se limpian u objetos con más y más datos? – Oded

Respuesta

1

Me parece que la causa no es el temporizador en sí, sino las instrucciones que invoca. ¿Creas objetos en esas instrucciones tuyas o llamas a algo que se ejecuta en un hilo separado? Comenzar hilos o asignar recursos, y olvidarse de cerrarlos ciertamente puede llevar al comportamiento que describió.

+0

En las dos primeras instrucciones estoy cambiando 'texto (s)' de dos 'etiquetas' y la tercera instrucción incrementa un 'doble' valor. –

+2

A menos que algunas de esas etiquetas tengan activado algunos onChanged() o eventos similares, el problema no debería estar en esta parte del código. ¿Intentó aislar el problema? ¿Qué sucede cuando comenta todo dentro de su "tic del temporizador"? ¿Qué sucede si configura el intervalo del temporizador a 10 veces más lento, o no lo enciende en absoluto? – vsz

Cuestiones relacionadas