Teilen über


DispatcherTimer Klasse

Definition

Ein Zeitgeber, der in die Dispatcher-Warteschlange integriert ist, die in einem festgelegten Zeitintervall und mit einer festgelegten Priorität verarbeitet wird.

public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
Vererbung
DispatcherTimer

Beispiele

Im folgenden Beispiel wird ein DispatcherTimer erstellt, das den Inhalt eines Label aktualisiert und die InvalidateRequerySuggested -Methode für CommandManageraufruft.

Ein DispatcherTimer Objekt mit dem Namen dispatcherTimer wird erstellt. Der Ereignishandler dispatcherTimer_Tick wird dem Tick Ereignis von dispatcherTimerhinzugefügt. Der Interval wird mithilfe eines TimeSpan -Objekts auf 1 Sekunde festgelegt, und der Timer wird gestartet.

//  DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
dispatcherTimer.Start();
'  DispatcherTimer setup
dispatcherTimer = New Threading.DispatcherTimer()
AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick
dispatcherTimer.Interval = New TimeSpan(0,0,1)
dispatcherTimer.Start()

Der Tick Ereignishandler aktualisiert eine Label , die die aktuelle Sekunde anzeigt, und ruft InvalidateRequerySuggested für auf CommandManager.

//  System.Windows.Threading.DispatcherTimer.Tick handler
//
//  Updates the current seconds display and calls
//  InvalidateRequerySuggested on the CommandManager to force 
//  the Command to raise the CanExecuteChanged event.
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    // Updating the Label which displays the current second
    lblSeconds.Content = DateTime.Now.Second;

    // Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested();
}
'  System.Windows.Threading.DispatcherTimer.Tick handler
'
'  Updates the current seconds display and calls
'  InvalidateRequerySuggested on the CommandManager to force 
'  the Command to raise the CanExecuteChanged event.
Private Sub dispatcherTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
    ' Updating the Label which displays the current second
    lblSeconds.Content = Date.Now.Second

    ' Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested()
End Sub

Hinweise

Der DispatcherTimer wird am Anfang jeder Dispatcher Schleife neu ausgewertet.

Timer werden nicht garantiert, dass sie genau ausgeführt werden, wenn das Zeitintervall auftritt, aber sie werden garantiert nicht ausgeführt, bevor das Zeitintervall eintritt. Dies liegt daran, dass DispatcherTimer Vorgänge wie andere Vorgänge in der Dispatcher Warteschlange platziert werden. Die Ausführung des DispatcherTimer Vorgangs hängt von den anderen Aufträgen in der Warteschlange und ihren Prioritäten ab.

Wenn ein System.Timers.Timer in einer WPF-Anwendung verwendet wird, ist zu beachten, dass der System.Timers.Timer in einem anderen Thread als der Thread der Benutzeroberfläche (UI) ausgeführt wird. Um auf Objekte im Thread der Benutzeroberfläche (UI) zuzugreifen, muss der Vorgang mithilfe von oder im Dispatcher Thread Invoke der Benutzeroberfläche (UI) bereitgestellt werden BeginInvoke. Gründe für die Verwendung von im DispatcherTimer Gegensatz zu einem System.Timers.Timer sind, dass die DispatcherTimer für denselben Thread wie und Dispatcher für DispatcherPriority festgelegt DispatcherTimerwerden kann.

A DispatcherTimer hält ein Objekt am Leben, wenn die Methoden des Objekts an den Timer gebunden sind.

Konstruktoren

DispatcherTimer()

Initialisiert eine neue Instanz der DispatcherTimer-Klasse.

DispatcherTimer(DispatcherPriority)

Initialisiert eine neue Instanz der DispatcherTimer-Klasse, die Zeitgeberereignisse mit der angegebenen Priorität verarbeitet.

DispatcherTimer(DispatcherPriority, Dispatcher)

Initialisiert eine neue Instanz der DispatcherTimer-Klasse, die im angegebenen Dispatcher mit der angegebenen Priorität ausgeführt wird.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Initialisiert eine neue Instanz der DispatcherTimer-Klasse, die das angegebene Zeitintervall, die angegebene Priorität, den angegebenen Ereignishandler und den angegebenen Dispatcher verwendet.

Eigenschaften

Dispatcher

Ruft den diesem Dispatcher zugeordneten DispatcherTimer ab.

Interval

Ruft den Zeitraum zwischen den Ticks des Zeitgebers ab oder legt diesen fest.

IsEnabled

Ruft einen Wert ab, mit dem angegeben wird, ob der Zeitgeber ausgeführt wird, oder legt diesen Wert fest.

Tag

Ruft ein benutzerdefiniertes Datenobjekt ab oder legt es fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Start()

Startet den DispatcherTimer.

Stop()

Hält den DispatcherTimer an.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

Tick

Tritt auf, wenn das Zeitgeberintervall verstrichen ist.

Gilt für: