Condividi tramite


DispatcherTimer Classe

Definizione

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.

Si applica a