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 : Sélectionner tout - Visualiser dans une fenêtre à part
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