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 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 dispatcherTimer
hinzugefü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. |