DispatcherTimer Klass

Definition

En timer som är integrerad i Dispatcher kön som bearbetas med ett angivet tidsintervall och med en angiven prioritet.

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

Exempel

I följande exempel skapas en DispatcherTimer som uppdaterar innehållet i en Label och anropar InvalidateRequerySuggested metoden på CommandManager.

Ett DispatcherTimer objekt med namnet dispatcherTimer skapas. Händelsehanteraren dispatcherTimer_Tick läggs till i Tick händelsen dispatcherTimer. Interval Är inställt på 1 sekund med hjälp av ett TimeSpan objekt, och timern startas.

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

Händelsehanteraren Tick uppdaterar en Label som visar den aktuella sekunden och anropar InvalidateRequerySuggestedCommandManager.

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

Kommentarer

DispatcherTimer Utvärderas på nytt överst i varje Dispatcher loop.

Timers är inte garanterade att köra exakt när tidsintervallet inträffar, men de kommer garanterat inte att köras innan tidsintervallet inträffar. Det beror på att DispatcherTimer åtgärder placeras i Dispatcher kön som andra åtgärder. När åtgärden DispatcherTimer körs är beroende av de andra jobben i kön och deras prioriteringar.

Om en System.Timers.Timer används i ett WPF program är det värt att notera att System.Timers.Timer körs på en annan tråd än användargränssnittstråden. För att få åtkomst till objekt i användargränssnittstråden (UI) är det nödvändigt att publicera åtgärden i Dispatcher användargränssnittstråden (UI) med eller InvokeBeginInvoke. Orsaker till att använda en DispatcherTimer i stället för en System.Timers.Timer är att körningarna DispatcherTimer på samma tråd som Dispatcher och kan DispatcherPriority anges på DispatcherTimer.

A DispatcherTimer håller ett objekt vid liv när objektets metoder är bundna till timern.

Konstruktorer

Name Description
DispatcherTimer()

Initierar en ny instans av DispatcherTimer klassen.

DispatcherTimer(DispatcherPriority, Dispatcher)

Initierar en ny instans av DispatcherTimer klassen som körs på den angivna Dispatcher prioriteten.

DispatcherTimer(DispatcherPriority)

Initierar en ny instans av DispatcherTimer klassen som bearbetar tidsinställda händelser med den angivna prioriteten.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Initierar en ny instans av DispatcherTimer klassen som använder det angivna tidsintervallet, prioriteten, händelsehanteraren och Dispatcher.

Egenskaper

Name Description
Dispatcher

Hämtar associerad Dispatcher med den här DispatcherTimer.

Interval

Hämtar eller anger tidsperioden mellan tidsinställda tick.

IsEnabled

Hämtar eller anger ett värde som anger om timern körs.

Tag

Hämtar eller anger ett användardefinierat dataobjekt.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Start()

DispatcherTimerStartar .

Stop()

DispatcherTimerStoppar .

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Händelser

Name Description
Tick

Inträffar när tidsintervallet har förflutit.

Gäller för