Question

dans cette Link Cela montre commentdéterminer si une minuterie est en cours d'exécution.Pour moi, ça ne marche pas.

J'ai la minuterie déclarée dans une classe statique comme indiqué

public static class ServiceGlobals // Globals
{

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

}

Lors du démarrage de mon service, j'ai défini les propriétés de la minuterie

 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                  
        }

Puis je vérifie s'il est en cours d'exécution dans l'une de mes méthodes, mais même lorsqu'il exécute le code est toujours faux

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

}

Était-ce utile?

La solution

Vous devez avoir manqué cette partie du fil que vous avez lié:

"Si Timer.Autoreset est true, alors activé sera automatiquement défini sur FALSE la première fois que la minuterie expire."

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top