DispatcherTimer Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Timer integrato nella coda Dispatcher che viene elaborato in un intervallo di tempo specificato e con una priorità specificata.
public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
- Ereditarietà
-
DispatcherTimer
Esempio
Nell'esempio seguente viene creato un oggetto DispatcherTimer che aggiorna il contenuto di un Label oggetto e chiama il InvalidateRequerySuggested metodo su CommandManager.
Viene creato un DispatcherTimer oggetto denominato dispatcherTimer
. Il gestore eventi dispatcherTimer_Tick
viene aggiunto all'evento Tick di dispatcherTimer
. l'oggetto Interval è impostato su 1 secondo usando un TimeSpan oggetto e il timer viene avviato.
// 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()
Il Tick gestore eventi aggiorna un Label oggetto che visualizza il secondo corrente e chiama InvalidateRequerySuggested su 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
Commenti
L'oggetto DispatcherTimer viene rivalutato all'inizio di ogni Dispatcher ciclo.
Non è garantito che i timer vengano eseguiti esattamente quando si verifica l'intervallo di tempo, ma è garantito che non vengano eseguiti prima che si verifichi l'intervallo di tempo. Ciò è dovuto al fatto che DispatcherTimer le operazioni vengono inserite nella Dispatcher coda come altre operazioni. Quando l'operazione DispatcherTimer viene eseguita dipende dagli altri processi nella coda e dalle relative priorità.
Se un System.Timers.Timer oggetto viene usato in un'applicazione WPF, vale la pena notare che viene System.Timers.Timer eseguito su un thread diverso rispetto al thread dell'interfaccia utente. Per accedere agli oggetti nel thread dell'interfaccia utente, è necessario inserire l'operazione nel Dispatcher thread dell'interfaccia utente usando Invoke o BeginInvoke. I motivi per l'uso di un DispatcherTimerSystem.Timers.Timer oggetto sono che l'oggetto DispatcherTimer viene eseguito nello stesso thread di Dispatcher e un DispatcherPriority oggetto può essere impostato su DispatcherTimer.
Un DispatcherTimer oggetto manterrà attivo un oggetto ogni volta che i metodi dell'oggetto sono associati al timer.
Costruttori
DispatcherTimer() |
Inizializza una nuova istanza della classe DispatcherTimer. |
DispatcherTimer(DispatcherPriority) |
Inizializza una nuova istanza della classe DispatcherTimer che elabora gli eventi del timer con la priorità specificata. |
DispatcherTimer(DispatcherPriority, Dispatcher) |
Inizializza una nuova istanza della classe DispatcherTimer che viene eseguita sull'oggetto Dispatcher specificato con la priorità indicata. |
DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
Inizializza una nuova istanza della classe DispatcherTimer che utilizza l'intervallo di tempo, la priorità, il gestore eventi e l'oggetto Dispatcher specificati. |
Proprietà
Dispatcher |
Ottiene l'oggetto Dispatcher associato a questo oggetto DispatcherTimer. |
Interval |
Ottiene o imposta il periodo tra unità di tempo del timer. |
IsEnabled |
Ottiene o imposta un valore che indica se il timer è in esecuzione. |
Tag |
Ottiene o imposta un oggetto dati definiti dall'utente. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Start() |
Avvia DispatcherTimer. |
Stop() |
Arresta DispatcherTimer. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Eventi
Tick |
Si verifica al termine dell'intervallo del timer. |