DispatcherTimer Klas

Definitie

Een timer die is geïntegreerd in de Dispatcher wachtrij die wordt verwerkt met een opgegeven tijdsinterval en met een opgegeven prioriteit.

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

Voorbeelden

In het volgende voorbeeld wordt een DispatcherTimer bestand gemaakt waarmee de inhoud van een Label wordt bijgewerkt en de InvalidateRequerySuggested methode wordt aangeroepen op de CommandManager.

Er wordt een DispatcherTimer object met de naam dispatcherTimer gemaakt. De gebeurtenis-handler dispatcherTimer_Tick wordt toegevoegd aan de Tick gebeurtenis van dispatcherTimer. De Interval is ingesteld op 1 seconde met behulp van een TimeSpan object en de timer wordt gestart.

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

De Tick gebeurtenis-handler werkt een update die Label de huidige seconde weergeeft en roept InvalidateRequerySuggested het aan op de 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

Opmerkingen

De DispatcherTimer lus wordt opnieuw geëvalueerd boven aan elke Dispatcher lus.

Timers worden niet gegarandeerd exact uitgevoerd wanneer het tijdsinterval plaatsvindt, maar ze worden gegarandeerd niet uitgevoerd voordat het tijdsinterval plaatsvindt. Dit komt doordat DispatcherTimer bewerkingen in de Dispatcher wachtrij worden geplaatst, net als andere bewerkingen. Wanneer de DispatcherTimer bewerking wordt uitgevoerd, is afhankelijk van de andere taken in de wachtrij en hun prioriteiten.

Als een System.Timers.Timer wordt gebruikt in een WPF toepassing, is het de moeite waard om te vermelden dat de System.Timers.Timer wordt uitgevoerd op een andere thread dan de gebruikersinterfacethread (UI). Om toegang te krijgen tot objecten op de gebruikersinterfacethread (UI), is het noodzakelijk om de bewerking te posten op de thread van de Dispatcher gebruikersinterface (UI) met behulp Invoke van of BeginInvoke. Redenen voor het gebruik van een in plaats van een DispatcherTimerSystem.Timers.Timer zijn dat de DispatcherTimer uitvoeringen op dezelfde thread als de Dispatcher en een DispatcherPriority kunnen worden ingesteld op de DispatcherTimer.

A DispatcherTimer houdt een object actief wanneer de methoden van het object zijn gebonden aan de timer.

Constructors

Name Description
DispatcherTimer()

Initialiseert een nieuw exemplaar van de DispatcherTimer klasse.

DispatcherTimer(DispatcherPriority, Dispatcher)

Initialiseert een nieuw exemplaar van de DispatcherTimer klasse die wordt uitgevoerd op de opgegeven Dispatcher prioriteit.

DispatcherTimer(DispatcherPriority)

Initialiseert een nieuw exemplaar van de DispatcherTimer klasse die timer-gebeurtenissen op de opgegeven prioriteit verwerkt.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Initialiseert een nieuw exemplaar van de DispatcherTimer klasse die gebruikmaakt van het opgegeven tijdsinterval, prioriteit, gebeurtenishandler en Dispatcher.

Eigenschappen

Name Description
Dispatcher

Hiermee haalt u de Dispatcher bijbehorende DispatcherTimer.

Interval

Hiermee haalt u de tijdsperiode tussen timertekens op of stelt u deze in.

IsEnabled

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de timer wordt uitgevoerd.

Tag

Hiermee wordt een door de gebruiker gedefinieerd gegevensobject opgehaald of ingesteld.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Start()

Hiermee start u de DispatcherTimer.

Stop()

Stopt de DispatcherTimer.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

gebeurtenis

Name Description
Tick

Treedt op wanneer het timerinterval is verstreken.

Van toepassing op