DispatcherTimer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein Zeitgeber, der in die Dispatcher Warteschlange integriert ist, die zu einem bestimmten Zeitintervall und zu einer bestimmten 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 Objekt erstellt, das den Inhalt eines Elements Label aktualisiert und die InvalidateRequerySuggested Methode für die CommandManager.
Ein benanntes DispatcherTimerdispatcherTimer Objekt wird erstellt. Der Ereignishandler dispatcherTimer_Tick wird dem Tick Ereignis von dispatcherTimerhinzugefügt. Die Interval Einstellung 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 ein Label Ereignis, das die aktuelle Sekunde anzeigt, und ruft InvalidateRequerySuggested dies 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
Die DispatcherTimer Neubewertung erfolgt oben in jeder Dispatcher Schleife.
Timer werden nicht garantiert genau ausgeführt, wenn das Zeitintervall auftritt, aber sie werden garantiert nicht ausgeführt, bevor das Zeitintervall auftritt. Dies liegt daran, dass DispatcherTimer Vorgänge wie andere Vorgänge in der Dispatcher Warteschlange platziert werden. Wenn der DispatcherTimer Vorgang ausgeführt wird, hängt von den anderen Aufträgen in der Warteschlange und deren Prioritäten ab.
Wenn ein System.Timers.Timer in einer WPF-Anwendung verwendet wird, ist es erwähnenswert, dass die System.Timers.Timer auf einem anderen Thread als dem Ui-Thread (Ui) ausgeführt wird. Um auf Objekte im UI-Thread (User Interface) zuzugreifen, ist es erforderlich, den Vorgang mithilfe oder auf den Dispatcher Ui-Thread des Ui-Threads InvokeBeginInvoke(User Interface) zu veröffentlichen. Gründe für die Verwendung im DispatcherTimer Gegensatz zu einem System.Timers.Timer sind, dass die DispatcherTimer Ausführung auf demselben Thread wie die Dispatcher und eine DispatcherPriority für die DispatcherTimer.
Ein DispatcherTimer Objekt bleibt erhalten, wenn die Methoden des Objekts an den Timer gebunden sind.
Konstruktoren
| Name | Beschreibung |
|---|---|
| DispatcherTimer() |
Initialisiert eine neue Instanz der DispatcherTimer-Klasse. |
| DispatcherTimer(DispatcherPriority, Dispatcher) |
Initialisiert eine neue Instanz der DispatcherTimer Klasse, die auf der angegebenen Dispatcher Priorität ausgeführt wird. |
| DispatcherTimer(DispatcherPriority) |
Initialisiert eine neue Instanz der DispatcherTimer Klasse, die Zeitgeberereignisse an der angegebenen Priorität verarbeitet. |
| DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
Initialisiert eine neue Instanz der DispatcherTimer Klasse, die das angegebene Zeitintervall, die Priorität, den Ereignishandler und den Dispatcherangegebenen Zeithandler verwendet. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Dispatcher |
Ruft die Dispatcher diesem DispatcherTimerzugeordnete ab. |
| Interval |
Dient zum Abrufen oder Festlegen des Zeitraums zwischen Timer-Ticks. |
| IsEnabled |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Timer ausgeführt wird. |
| Tag |
Dient zum Abrufen oder Festlegen eines benutzerdefinierten Datenobjekts. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| Start() |
Startet das DispatcherTimer. |
| Stop() |
Stoppt die DispatcherTimer. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Ereignisse
| Name | Beschreibung |
|---|---|
| Tick |
Tritt auf, wenn das Zeitgeberintervall verstrichen ist. |