Zeitgeber

Timer sind kompakte Objekte, mit denen angegeben werden kann, dass ein Delegat zu einem bestimmten Zeitpunkt aufgerufen werden soll. Der Wartevorgang wird von einem Thread im Threadpool ausgeführt.

Die Verwendung der Timer-Klasse ist unkompliziert. Sie erstellen einen Timer, indem Sie einen TimerCallback-Delegaten an die Rückrufmethode übergeben. Ein Objekt, das den Zustand darstellt, wird an den Rückruf übergeben, außerdem der Zeitpunkt des ersten Aufrufs und eine Zeitspanne zur Angabe des Intervalls zwischen den Aufrufen des Rückrufs. Um einen anstehenden Timer zu löschen, rufen Sie die Timer.Dispose-Funktion auf.

Hinweis

Es gibt zwei weitere Zeitgeberklassen. Die System.Windows.Forms.Timer-Klasse ist ein Steuerelement, dass mit visuellen Designern arbeitet und für die Verwendung im Benutzeroberflächenkontext vorgesehen ist. Es löst Ereignisse für den Benutzeroberflächenthread aus. Die System.Timers.Timer-Klasse ist von Component abgeleitet und kann daher mit visuellen Designern verwendet werden. Sie löst ebenfalls Ereignisse aus, jedoch für einen ThreadPool-Thread. Die System.Threading.Timer-Klasse nimmt Rückrufe für einen ThreadPool-Thread vor und verwendet das Ereignismodell nicht. Im Gegensatz zu anderen Zeitgebern stellt sie der Rückrufmethode auch ein Zustandsobjekt bereit. Dies ist eine sehr einfache Klasse.

Im folgenden Codebeispiel wird ein Zeitgeber gestartet, der nach einer Sekunde (1000 Millisekunden) startet und jede Sekunde hochzählt, bis die Enter-Taste gedrückt wird. Bei der Variablen mit dem Verweis auf den Zeitgeber handelt es sich um ein Feld auf Klassenebene, um zu verhindern, dass der Zeitgeber während der Ausführung von der Garbage Collection erfasst wird. Weitere Informationen über die aggressive Garbage Collection finden Sie unter KeepAlive.

Imports System
Imports System.Threading

Public Class Example
   
   Private Shared ticker As Timer
   
   Public Shared Sub TimerMethod(state As Object)
      Console.Write(".")
   End Sub
   
   Public Shared Sub Main()
      ticker = New Timer(AddressOf TimerMethod, Nothing, 1000, 1000)

      Console.WriteLine("Press the Enter key to end the program.")
      Console.ReadLine()
   End Sub 
End Class
using System;
using System.Threading;

public class Example
{   
   private static Timer ticker;
   
   public static void TimerMethod(Object state)
   {
      Console.Write(".");
   }
   
   public static void Main()
   {
      ticker = new Timer(TimerMethod, null, 1000, 1000);

      Console.WriteLine("Press the Enter key to end the program.");
      Console.ReadLine();
   } 
}

Siehe auch

Referenz

Timer

Weitere Ressourcen

Threadingobjekte und -features