Pregunta

En este link muestra cómodeterminar si se está ejecutando un temporizador.Para mí no está funcionando.

Tengo el temporizador declarado en una clase estática como se muestra

public static class ServiceGlobals // Globals
{

    public static System.Timers.Timer _timer = new System.Timers.Timer();
}

}

En la puesta en marcha de mi servicio, configuro las propiedades del temporizador

 protected override void OnStart(string[] args)
        {                  

                    ServiceGlobals._timer.AutoReset = false;
                    ServiceGlobals._timer.Interval = (3000);
                    ServiceGlobals._timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
                    ServiceGlobals._timer.Enabled = true;
                    ServiceGlobals._timer.Start(); // Start timer                  
        }

Luego, verifico si se está ejecutando en uno de mis métodos, pero incluso cuando se está ejecutando, el código siempre es falso

if (ServiceGlobals._timer.Enabled) // Check if the timer is running
{
    // Return error.........

}

¿Fue útil?

Solución

Debe haber perdido esta parte del hilo que vinculó:

"Si Timer.Autoreset es verdadero, entonces habilitado se establecerá automáticamente en FALSE la primera vez que expire el temporizador".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top