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 Dispatcher coda che viene elaborato a un intervallo di tempo specificato e a 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 in 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 utilizzando 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 oggetto Label 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 non vengono 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 viene usato in un'applicazione macchine virtuali Windows, vale la pena notare che il System.Timers.Timer viene eseguito in 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 DispatcherTimer oggetto invece di sono System.Timers.Timer 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
| Nome | Descrizione |
|---|---|
| DispatcherTimer() |
Inizializza una nuova istanza della classe DispatcherTimer. |
| DispatcherTimer(DispatcherPriority, Dispatcher) |
Inizializza una nuova istanza della DispatcherTimer classe che viene eseguita sull'oggetto specificato Dispatcher con la priorità specificata. |
| DispatcherTimer(DispatcherPriority) |
Inizializza una nuova istanza della DispatcherTimer classe che elabora gli eventi timer con la priorità specificata. |
| DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher) |
Inizializza una nuova istanza della DispatcherTimer classe che usa l'intervallo di tempo, la priorità, il gestore eventi e Dispatcher. |
Proprietà
| Nome | Descrizione |
|---|---|
| Dispatcher |
Ottiene l'oggetto associato all'oggetto DispatcherDispatcherTimer. |
| Interval |
Ottiene o imposta il periodo di tempo tra i tick timer. |
| IsEnabled |
Ottiene o imposta un valore che indica se il timer è in esecuzione. |
| Tag |
Ottiene o imposta un oggetto dati definito dall'utente. |
Metodi
| Nome | Descrizione |
|---|---|
| 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 il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| Start() |
Avvia l'oggetto DispatcherTimer. |
| Stop() |
Arresta l'oggetto DispatcherTimer. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Eventi
| Nome | Descrizione |
|---|---|
| Tick |
Si verifica quando è trascorso l'intervallo timer. |