DispatcherTimer Classe

Definizione

Timer integrato nella coda Dispatcher che viene elaborato in un intervallo di tempo specificato e con una priorità specificata.A timer that is integrated into the Dispatcher queue which is processed at a specified interval of time and at a specified priority.

public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
Ereditarietà
DispatcherTimer

Esempi

Nell'esempio seguente viene creato un DispatcherTimer che aggiorna il contenuto di un Label e chiama il metodo InvalidateRequerySuggested sul CommandManager.The following example creates a DispatcherTimer that updates the contents of a Label and calls the InvalidateRequerySuggested method on the CommandManager.

Viene creato un oggetto DispatcherTimer denominato dispatcherTimer.A DispatcherTimer object named dispatcherTimer is created. Il gestore eventi dispatcherTimer_Tick viene aggiunto all'evento Tick di dispatcherTimer.The event handler dispatcherTimer_Tick is added to the Tick event of dispatcherTimer. Il Interval è impostato su 1 secondo usando un oggetto TimeSpan e il timer viene avviato.The Interval is set to 1 second using a TimeSpan object, and the timer is started.

//  DispatcherTimer setup
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,0,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 gestore dell'evento Tick aggiorna una Label che Visualizza il secondo corrente e chiama InvalidateRequerySuggested sul CommandManager.The Tick event handler updates a Label that displays the current second, and it calls InvalidateRequerySuggested on the 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

Il DispatcherTimer viene rivalutato nella parte superiore di ogni ciclo di Dispatcher.The DispatcherTimer is reevaluated at the top of every Dispatcher loop.

Non è garantito che l'esecuzione di timer avvenga esattamente quando si verifica l'intervallo di tempo, ma è garantito che non vengano eseguite prima dell'intervallo di tempo.Timers are not guaranteed to execute exactly when the time interval occurs, but they are guaranteed to not execute before the time interval occurs. Questo perché DispatcherTimer operazioni vengono inserite nella coda Dispatcher come altre operazioni.This is because DispatcherTimer operations are placed on the Dispatcher queue like other operations. Quando l'operazione di DispatcherTimer viene eseguita dipende dagli altri processi nella coda e dalle relative priorità.When the DispatcherTimer operation executes is dependent on the other jobs in the queue and their priorities.

Se un System.Timers.Timer viene usato in un'applicazione WPFWPF, vale la pena notare che il System.Timers.Timer viene eseguito in un thread diverso da quello del interfaccia utenteuser interface (UI) thread.If a System.Timers.Timer is used in a WPFWPF application, it is worth noting that the System.Timers.Timer runs on a different thread than the interfaccia utenteuser interface (UI) thread. Per accedere agli oggetti nel thread di interfaccia utenteuser interface (UI), è necessario inserire l'operazione nella Dispatcher del thread interfaccia utenteuser interface (UI) usando Invoke o BeginInvoke.In order to access objects on the interfaccia utenteuser interface (UI) thread, it is necessary to post the operation onto the Dispatcher of the interfaccia utenteuser interface (UI) thread using Invoke or BeginInvoke. I motivi per l'utilizzo di un DispatcherTimer rispetto a una System.Timers.Timer sono che il DispatcherTimer viene eseguito sullo stesso thread del Dispatcher e un DispatcherPriority può essere impostato nella DispatcherTimer.Reasons for using a DispatcherTimer as opposed to a System.Timers.Timer are that the DispatcherTimer runs on the same thread as the Dispatcher and a DispatcherPriority can be set on the DispatcherTimer.

Un DispatcherTimer manterrà attivo un oggetto ogni volta che i metodi dell'oggetto sono associati al timer.A DispatcherTimer will keep an object alive whenever the object's methods are bound to the timer.

Costruttori

DispatcherTimer()

Inizializza una nuova istanza della classe DispatcherTimer.Initializes a new instance of the DispatcherTimer class.

DispatcherTimer(DispatcherPriority)

Inizializza una nuova istanza della classe DispatcherTimer che elabora gli eventi del timer con la priorità specificata.Initializes a new instance of the DispatcherTimer class which processes timer events at the specified priority.

DispatcherTimer(DispatcherPriority, Dispatcher)

Inizializza una nuova istanza della classe DispatcherTimer che viene eseguita sull'oggetto Dispatcher specificato con la priorità indicata.Initializes a new instance of the DispatcherTimer class which runs on the specified Dispatcher at the specified priority.

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.Initializes a new instance of the DispatcherTimer class which uses the specified time interval, priority, event handler, and Dispatcher.

Proprietà

Dispatcher

Ottiene l'oggetto Dispatcher associato a questo oggetto DispatcherTimer.Gets the Dispatcher associated with this DispatcherTimer.

Interval

Ottiene o imposta il periodo tra unità di tempo del timer.Gets or sets the period of time between timer ticks.

IsEnabled

Ottiene o imposta un valore che indica se il timer è in esecuzione.Gets or sets a value that indicates whether the timer is running.

Tag

Ottiene o imposta un oggetto dati definiti dall'utente.Gets or sets a user-defined data object.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Start()

Avvia DispatcherTimer.Starts the DispatcherTimer.

Stop()

Arresta DispatcherTimer.Stops the DispatcherTimer.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Eventi

Tick

Si verifica al termine dell'intervallo del timer.Occurs when the timer interval has elapsed.

Si applica a