2013-01-24 4 views
-1

J'ai rapidement écrit cette petite application de console vinker rinky-dink pour montrer quelque chose à quelqu'un. Quand je suis arrivé à regarder, je pensais qu'il doit y avoir une meilleure façon que de manger des cycles en utilisantProcessus en cours d'exécution

while True

...

End Alors que

mais je ne sais pas ce que c'est. Des pensées?

Module ControlExecutive 
    Private WithEvents MyTimer As New Timers.Timer 
    Sub Main() 
     MyTimer.Interval = 10000 
     Console.WriteLine("Start timer, interrupt every 10000 ms") 
     MyTimer.Start() 
     OuterLoop() 
    End Sub 

    Sub OuterLoop() 
     While True 
      'wait for timer interrupts 
     End While 
    End Sub 

    Sub HandleTimerInterrupt(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles MyTimer.Elapsed 
     Console.WriteLine(String.Format("Interrupt at {0}", DateTime.Now)) 
    End Sub 
End Module 
+0

Je voudrais ajouter un 'Thread.Sleep' dans la boucle afin de" aller facile "sur le CPU ... – xfx

Répondre

3

au lieu de (ou à l'intérieur) pour une boucle d'attente, vous devez utiliser System.Threading.Thread.Sleep(milliseconds). Cela mettra le thread en pause sans provoquer de pic CPU.