Estoy usando un temporizador para ejecutar un evento periódicamente en un intervalo razonablemente largo (2 minutos). Esto está funcionando bien. Sin embargo, me gustaría que el evento se dispare inmediatamente cuando se crea el temporizador (en lugar de esperar 2 minutos).Haga que un .Net System.Timers.Timer encienda inmediatamente
Tenga en cuenta que no puedo hacer esto simplemente llamando al método, ya que lleva tiempo ejecutarlo y bloquearía la aplicación. Necesito el temporizador para disparar normalmente y ejecutar el evento en un hilo separado.
La mejor manera que puedo pensar en hacer esto en el momento en que se herede de temporizador y la creación de un método TriggerManually
que hacer algo como esto:
- Encienda reinicio automático fuera
- establecer el intervalo de 1 ms
- activar el temporizador
Esto activará el evento transcurrido enseguida, y pude poner todos los ajustes vuelvan a la normalidad.
Aunque parece un poco indirecto. Hay una mejor manera de hacerlo?
@Mitch - sólo demuestra que eres humano a pesar de su representante loco :) – Gishu
Sí, esto funciona. System.Threading.Timer es un poco más difícil de usar, pero hace lo que necesito. ¡Gracias! – Nathan
Tenga en cuenta que una excepción no controlada en la devolución de llamada de 'System.Threading.Timer' [bloqueará su aplicación] (http://stackoverflow.com/questions/1718598/throwing-exceptions-in-callback-method-for-timers) –