DispatcherTimer Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy időzítő, amely integrálva van az Dispatcher üzenetsorba, amelyet meghatározott időközönként és meghatározott prioritással dolgoznak fel.
public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
- Öröklődés
-
DispatcherTimer
Példák
Az alábbi példa létrehoz egy DispatcherTimer olyan elemet, amely frissíti egy fájl Label tartalmát, és meghívja a InvalidateRequerySuggested metódust a CommandManagerkövetkezőn: .
Létrejön egy DispatcherTimer elnevezett dispatcherTimer objektum. Az eseménykezelő dispatcherTimer_Tick hozzá lesz adva a Tick következő eseményhez dispatcherTimer: . Az Interval érték egy objektummal TimeSpan 1 másodpercre van állítva, és az időzítő elindul.
// 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()
Az Tick eseménykezelő frissíti Label az aktuális másodpercet megjelenítő frissítést, és meghívja InvalidateRequerySuggested a 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
Megjegyzések
A DispatcherTimer ciklusok tetején Dispatcher újraértékeljük az értékeket.
Az időzítők nem garantáltan pontosan akkor futnak, amikor az időintervallum bekövetkezik, de garantáltan nem hajthatók végre az időintervallum előtt. Ennek az az oka, hogy DispatcherTimer a műveletek más műveletekhez hasonlóan kerülnek az Dispatcher üzenetsorra. Ha a DispatcherTimer művelet végrehajtása az üzenetsor többi feladatától és prioritásaitól függ.
Ha egy WPF alkalmazásban System.Timers.Timer használ, érdemes megjegyezni, hogy a System.Timers.Timer a felhasználói felület (UI) száltól eltérő szálon fut. A felhasználói felület (UI) szál objektumainak eléréséhez a műveletet a felhasználói felület (UI) szálra Dispatcher kell közzétenni a felhasználói felület (UI) szál használatával vagy InvokehasználatávalBeginInvoke. A nem az a függvény használatának DispatcherTimer oka, hogy a System.Timers.Timer futtatások ugyanazon a szálon futnakDispatcherTimer, mint a DispatcherDispatcherPriority .DispatcherTimer
A DispatcherTimer rendszer életben tart egy objektumot, amikor az objektum metódusai az időzítőhöz vannak kötve.
Konstruktorok
| Name | Description |
|---|---|
| DispatcherTimer() |
Inicializálja a DispatcherTimer osztály új példányát. |
| DispatcherTimer(DispatcherPriority, Dispatcher) |
Inicializálja az DispatcherTimer osztály új példányát, amely a megadott Dispatcher prioritáson fut. |
| DispatcherTimer(DispatcherPriority) |
Inicializálja az DispatcherTimer osztály új példányát, amely a megadott prioritáson dolgozza fel az időzítőeseményeket. |
| DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
Inicializálja az DispatcherTimer osztály új példányát, amely a megadott időintervallumot, prioritást, eseménykezelőt és Dispatcher. |
Tulajdonságok
| Name | Description |
|---|---|
| Dispatcher |
Lekéri a Dispatcher társított elemet.DispatcherTimer |
| Interval |
Lekéri vagy beállítja az időzítőjelek közötti időtartamot. |
| IsEnabled |
Lekéri vagy beállít egy értéket, amely jelzi, hogy az időzítő fut-e. |
| Tag |
Lekéri vagy beállít egy felhasználó által definiált adatobjektumot. |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| Start() |
Elindítja a DispatcherTimer. |
| Stop() |
Leállítja a DispatcherTimer. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
esemény
| Name | Description |
|---|---|
| Tick |
Az időzítőintervallum elteltekor következik be. |