DispatcherTimer Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Č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. |