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č, který je integrovaný do Dispatcher fronty, která se zpracovává v zadaném časovém intervalu a v zadané prioritě.
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 , který aktualizuje obsah a Label volá metodu InvalidateRequerySuggested na CommandManager.
Vytvoří se DispatcherTimer objekt s názvem dispatcherTimer . Obslužná rutina dispatcherTimer_Tick události je přidána Tick do události .dispatcherTimer Parametr Interval je nastaven 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 Label , která zobrazuje aktuální sekundu a volá 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
Poznámky
V DispatcherTimer horní části každé Dispatcher smyčky se znovu zhodnotí.
Časovače nejsou zaručeny, že se budou spouštět přesně v případě výskytu časového intervalu, ale je zaručeno, že se nespustí před uplynutím časového intervalu. Důvodem je to, že DispatcherTimer operace se umístí do fronty Dispatcher jako jiné operace. Když se DispatcherTimer operace provede, závisí na ostatních úlohách ve frontě a na jejich prioritách.
Pokud se System.Timers.Timer používá v aplikaci WPF (Windows Presentation Foundation), stojí za zmínku, že System.Timers.Timer běží na jiném vlákně než vlákno uživatelského rozhraní. Pro přístup k objektům ve vlákně uživatelského rozhraní (UI) je nutné publikovat operaci do Dispatcher vlákna uživatelského rozhraní pomocí Invoke nebo BeginInvoke. Důvody použití DispatcherTimer na rozdíl od toho System.Timers.Timer , že DispatcherTimer běží na stejném vlákně jako Dispatcher a DispatcherPriority lze nastavit na DispatcherTimer.
A DispatcherTimer zachová objekt naživu vždy, když jsou metody objektu svázané s časovačem.
Konstruktory
| Name | Description |
|---|---|
| DispatcherTimer() |
Inicializuje novou instanci DispatcherTimer třídy. |
| DispatcherTimer(DispatcherPriority, Dispatcher) |
Inicializuje novou instanci DispatcherTimer třídy, která běží na zadané Dispatcher prioritě. |
| DispatcherTimer(DispatcherPriority) |
Inicializuje novou instanci DispatcherTimer třídy, která zpracovává události časovače na zadanou prioritu. |
| 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
| Name | Description |
|---|---|
| Dispatcher |
Získá přidružené k Dispatcher tomuto DispatcherTimer. |
| Interval |
Získá nebo nastaví časové období mezi časovačem. |
| IsEnabled |
Získá nebo nastaví hodnotu, která určuje, zda časovač běží. |
| Tag |
Získá nebo nastaví uživatelem definovaný datový objekt. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (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
| Name | Description |
|---|---|
| Tick |
Nastane, když časový interval uplynul. |