Timer integrato nella coda Dispatcher che viene elaborato in un intervallo di tempo specificato e con una priorità specificata.
System.Windows.Threading.DispatcherTimer
Spazio dei nomi: System.Windows.Threading
Assembly: WindowsBase (in WindowsBase.dll)
XMLNS per XAML: Non mappato a un xmlns.
Public Class DispatcherTimer
public class DispatcherTimer
public ref class DispatcherTimer
type DispatcherTimer = class end
Il tipo DispatcherTimer espone i seguenti membri.
| Nome | Descrizione | |
|---|---|---|
|
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. |
| Nome | Descrizione | |
|---|---|---|
|
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. |
| Nome | Descrizione | |
|---|---|---|
|
Equals(Object) | Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object) |
|
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) |
|
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) |
|
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
|
MemberwiseClone | Consente di creare una copia dei riferimenti 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) |
| Nome | Descrizione | |
|---|---|---|
|
Tick | Si verifica al termine dell'intervallo del timer. |
L'oggetto DispatcherTimer viene rivalutato all'inizio di ogni ciclo Dispatcher.
Non è garantito che i timer vengano eseguiti esattamente quando si verifica l'intervallo di tempo, ma certamente non vengono eseguiti prima. Le operazioni DispatcherTimer vengono infatti inserite nella coda Dispatcher come le altre operazioni. Il momento in cui viene eseguita l'operazione DispatcherTimer dipende dagli altri processi presenti nella coda e dalle relative priorità.
Se un oggetto System.Timers.Timer viene utilizzato in un'applicazione WPF, si noti che l'oggetto System.Timers.Timer viene eseguito in un thread diverso dal thread dell'user interface (UI). Per accedere agli oggetti nel thread dell'user interface (UI), è necessario inserire l'operazione nell'oggetto Dispatcher del thread dell'user interface (UI) utilizzando Invoke o BeginInvoke. È preferibile utilizzare un oggetto DispatcherTimer anziché un oggetto System.Timers.Timer perché l'oggetto DispatcherTimer viene eseguito nello stesso thread di Dispatcher ed è possibile impostare un oggetto DispatcherPriority su DispatcherTimer.
Un oggetto DispatcherTimer manterrà terrà attivo un oggetto ogni volta che i relativi metodi vengono associati al timer.
Nell'esempio riportato di seguito viene creato un oggetto DispatcherTimer che aggiorna il contenuto di Label e chiama il metodo InvalidateRequerySuggested su CommandManager.
Viene creato un oggetto DispatcherTimer denominato dispatcherTimer. All'evento Tick di dispatcherTimer viene aggiunto il gestore eventi dispatcherTimer_Tick. La proprietà Interval viene impostata su 1 secondo tramite un oggetto TimeSpan e il timer viene avviato.
' DispatcherTimer setup dispatcherTimer = New Threading.DispatcherTimer() AddHandler dispatcherTimer.Tick, AddressOf dispatcherTimer_Tick dispatcherTimer.Interval = New TimeSpan(0,0,1) dispatcherTimer.Start()
// DispatcherTimer setup dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan(0,0,1); dispatcherTimer.Start();
Il gestore eventi Tick aggiorna un oggetto Label che visualizza il secondo corrente, quindi 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 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
// 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(); }
.NET Framework
Supportato in: 4, 3.5, 3.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.