timer dans un service windows
bonjour,
me revoila parmis vous pour un nouveau probleme.
je cherche a executer du code toute les 5 secondes a l'aide d'un service.
voila ma syntaxe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new MonService() };
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
timer.Tick += new EventHandler(TimerEventProcessor);
// Sets the timer interval to 5 seconds.
timer.Interval = 5000;
timer.Start();
while (exitFlag == false)
{
// Processes all the events in the queue.
Application.DoEvents();
}
}
protected override void OnStart(string[] args)
{
// Code lancé au demarrage du service
timer.Enabled = true;
}
private static void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
{
timer.Stop();
// mon code (qui fonctionne)
timer.Enabled = true;
} |
j'ai fait cette syntaxe a l'aide du msdn. mon soucis est que je rentre dans mon main seulement si j'arrete le service (vous comprendrez que ça n'ai pas tres utile).
Comment dois-je faire pour accéder au Main avec mon OnStart?
J'ai aussi essayé de mettre mon timer dans mon OnStart mais dans ce cas là le service met un temps infinie a démarrer (ce qui est normale vu que j'ai une boucle infinie).
Il faut absolument que j'arrive a demarrer mon service, et a lui dire de rentrer dans mon Main. Par la suite le service tournera 100% du temps a l'aide de cette boucle infinie. (c'est pas propre mais c'est pour vous simplifier l'exemple)
Merci d'avance