2010-11-23 21 views
0

Mon code est le suivant:minuterie ne pas appeler la fonction de répétition dans mon service Windows

protected override void OnStart(string[] args) 
{ 

      //Set the interval of timer to 5 minutes. 
      timer1.Interval = 300000; 
      //Enable the timer. 
      timer1.Enabled = true; 

      repeatFunction(); 
} 

Et j'ai appelé la fonction de répétition dans mon événement timer_tick comme suit:

private void timer1_Tick(object sender, EventArgs e) 
{ 
    eventLog1.WriteEntry("Timer ticked"); 

       repeatFunction();    
} 

Mais la minuterie est ne pas cocher. Tout corps s'il vous plaît dites-moi où je me suis trompé ..

+0

Quelle minuterie et où déclarez-vous la minuterie? –

+0

Minuteur glissé de la boîte à outils après la création du service Windows. – Harun

Répondre

2

Votre code est comme ceci: vérifier

Comment utiliser la classe Timer pour déclencher un événement après un certain intervalle?

timer1.Interval = 5000; 
timer1.Enabled = true; 
timer1.Tick += new System.EventHandler (OnTimerEvent); 

Ecrire le gestionnaire d'événements

Cet événement sera exécuté après toutes les 5 secondes.

public static void OnTimerEvent(object source, EventArgs e) 
{ 
m_streamWriter.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString()); 
m_streamWriter.Flush(); 
} 

également vérifier cette propriété]

AutoReset

Indique si la minuterie déclenche l'événement Cocher chaque fois que l'intervalle spécifié ou si l'événement Tick est soulevée qu'une seule fois après la première intervalle s'est écoulé.

1

Vous devez associer la méthode timer1_Tick à l'événement Elapsed timer.

 timer.Interval = 300000; 
     timer.Elapsed += new ElapsedEventHandler(timer1_Tick); 
     timer.Start();