Udostępnij za pośrednictwem


DispatcherTimer Klasa

Definicja

Czasomierz zintegrowany z kolejką Dispatcher , która jest przetwarzana w określonym przedziale czasu i o określonym priorytetzie.

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

Przykłady

Poniższy przykład tworzy obiekt DispatcherTimer , który aktualizuje zawartość elementu Label i wywołuje metodę InvalidateRequerySuggested w obiekcie CommandManager.

Zostanie DispatcherTimer utworzony obiekt o nazwie dispatcherTimer . Program obsługi dispatcherTimer_Tick zdarzeń jest dodawany do Tick zdarzenia .dispatcherTimer Parametr Interval jest ustawiony na 1 sekundę przy użyciu TimeSpan obiektu, a czasomierz jest uruchamiany.

//  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()

Program Tick obsługi zdarzeń aktualizuje Label element, który wyświetla bieżącą sekundę i wywołuje InvalidateRequerySuggested element 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

Uwagi

Element DispatcherTimer jest ponownie oceniane w górnej części każdej Dispatcher pętli.

Czasomierze nie mają gwarancji wykonywania dokładnie wtedy, gdy wystąpi interwał czasu, ale mają gwarancję, że nie zostaną wykonane przed upływem interwału czasu. Dzieje się tak, ponieważ DispatcherTimer operacje są umieszczane w Dispatcher kolejce, podobnie jak w przypadku innych operacji. DispatcherTimer Gdy operacja jest wykonywana, zależy od innych zadań w kolejce i ich priorytetów.

Jeśli element System.Timers.Timer jest używany w aplikacji WPF, warto zauważyć, że System.Timers.Timer działa w innym wątku niż wątek interfejsu użytkownika. Aby uzyskać dostęp do obiektów w wątku interfejsu użytkownika, należy opublikować operację na Dispatcher wątku interfejsu użytkownika przy użyciu polecenia Invoke lub BeginInvoke. Przyczyny używania elementu DispatcherTimer w przeciwieństwie do elementu toSystem.Timers.Timer, że DispatcherTimer działa w tym samym wątku DispatcherTimerco element Dispatcher i DispatcherPriority można ustawić na .

Obiekt DispatcherTimer będzie utrzymywany przy życiu za każdym razem, gdy metody obiektu są powiązane z czasomierzem.

Konstruktory

DispatcherTimer()

Inicjuje nowe wystąpienie klasy DispatcherTimer.

DispatcherTimer(DispatcherPriority)

Inicjuje DispatcherTimer nowe wystąpienie klasy, które przetwarza zdarzenia czasomierza o określonym priorytetzie.

DispatcherTimer(DispatcherPriority, Dispatcher)

Inicjuje DispatcherTimer nowe wystąpienie klasy, która jest uruchamiana na określonym Dispatcher priorytetzie.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Inicjuje nowe wystąpienie klasy, które używa określonego interwału DispatcherTimer czasu, priorytetu, programu obsługi zdarzeń i Dispatcher.

Właściwości

Dispatcher

Dispatcher Pobiera skojarzony z tym DispatcherTimerelementem .

Interval

Pobiera lub ustawia okres między znacznikami czasomierza.

IsEnabled

Pobiera lub ustawia wartość wskazującą, czy czasomierz jest uruchomiony.

Tag

Pobiera lub ustawia obiekt danych zdefiniowany przez użytkownika.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Start()

Uruchamia element DispatcherTimer.

Stop()

Zatrzymuje element DispatcherTimer.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Zdarzenia

Tick

Występuje, gdy upłynął interwał czasomierza.

Dotyczy