Déterminez si la minuterie est en cours d'exécution
-
21-12-2019 - |
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.........
}
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