Sdílet prostřednictvím


DispatcherTimer Třída

Definice

Časovač integrovaný do Dispatcher fronty, který se zpracovává v zadaném časovém intervalu a se zadanou prioritou.

public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
Dědičnost
DispatcherTimer

Příklady

Následující příklad vytvoří DispatcherTimer objekt , který aktualizuje obsah objektu Label a zavolá metodu InvalidateRequerySuggested na CommandManager.

Vytvoří se DispatcherTimer objekt s názvem dispatcherTimer . Obslužná rutina dispatcherTimer_Tick události je přidána do Tick události .dispatcherTimer Objekt Interval se nastaví na 1 sekundu pomocí objektu TimeSpan a časovač se spustí.

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

Obslužná rutina Tick události aktualizuje objekt , Label který zobrazuje aktuální sekundu, a volá InvalidateRequerySuggested na .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

Poznámky

V DispatcherTimer horní části každé Dispatcher smyčky se znovu vyhodnotí.

Časovačům není zaručeno, že se spustí přesně v okamžiku, kdy nastane časový interval, ale je zaručeno, že se nespustí před tím, než nastane časový interval. Je to proto, že DispatcherTimer operace se umístí do fronty Dispatcher stejně jako jiné operace. Když se DispatcherTimer operace provede, závisí na ostatních úlohách ve frontě a jejich prioritách.

System.Timers.Timer Pokud se používá v aplikaci WPF, stojí za to poznamenat, že System.Timers.Timer běží v jiném vlákně než vlákno uživatelského rozhraní (UI). Pro přístup k objektům ve vlákně uživatelského rozhraní (UI), je nutné odeslat operaci do Dispatcher vlákna uživatelského rozhraní (UI) pomocí Invoke nebo BeginInvoke. Důvody pro použití DispatcherTimer a na rozdíl od a System.Timers.Timer jsou v tom, že DispatcherTimer běží ve stejném vlákně jako Dispatcher a DispatcherPriority lze nastavit v DispatcherTimer.

A DispatcherTimer udržuje objekt aktivní vždy, když jsou metody objektu svázané s časovačem.

Konstruktory

DispatcherTimer()

Inicializuje novou instanci DispatcherTimer třídy .

DispatcherTimer(DispatcherPriority)

Inicializuje novou instanci DispatcherTimer třídy, která zpracovává události časovače se zadanou prioritou.

DispatcherTimer(DispatcherPriority, Dispatcher)

Inicializuje novou instanci DispatcherTimer třídy, která běží na zadané Dispatcher s určenou prioritou.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Inicializuje novou instanci DispatcherTimer třídy, která používá zadaný časový interval, prioritu, obslužnou rutinu události a Dispatcher.

Vlastnosti

Dispatcher

Získá přidružený k Dispatcher tomuto DispatcherTimer.

Interval

Získá nebo nastaví časové období mezi časovače ticky.

IsEnabled

Získá nebo nastaví hodnotu, která označuje, zda časovač je spuštěn.

Tag

Získá nebo nastaví objekt dat definovaný uživatelem.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
Start()

Spustí .DispatcherTimer

Stop()

Zastaví .DispatcherTimer

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Událost

Tick

Vyvolá se po uplynutí intervalu časovače.

Platí pro