DispatcherTimer Classe

Définition

Minuterie intégrée dans la file d'attente de Dispatcher qui est traitée à un intervalle de temps et selon une priorité spécifiés.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
Héritage
DispatcherTimer

Exemples

L’exemple suivant crée une DispatcherTimer qui met à jour le contenu d’un Label et appelle la méthode InvalidateRequerySuggested sur le CommandManager.The following example creates a DispatcherTimer that updates the contents of a Label and calls the InvalidateRequerySuggested method on the CommandManager.

Un objet DispatcherTimer nommé dispatcherTimer est créé.A DispatcherTimer object named dispatcherTimer is created. Le gestionnaire d’événements dispatcherTimer_Tick est ajouté à l’événement Tick de dispatcherTimer.The event handler dispatcherTimer_Tick is added to the Tick event of dispatcherTimer. La Interval est définie sur 1 seconde à l’aide d’un objet TimeSpan et la minuterie est démarrée.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()

Le gestionnaire d’événements Tick met à jour une Label qui affiche la seconde en cours et appelle InvalidateRequerySuggested sur le 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

Remarques

La DispatcherTimer est réévaluée en haut de chaque boucle Dispatcher.The DispatcherTimer is reevaluated at the top of every Dispatcher loop.

Il n’est pas garanti que les minuteries s’exécutent exactement lorsque l’intervalle de temps se produit, mais ils sont assurés de ne pas s’exécuter avant l’intervalle de temps.Timers are not guaranteed to execute exactly when the time interval occurs, but they are guaranteed to not execute before the time interval occurs. Cela est dû au fait que DispatcherTimer opérations sont placées dans la file d’attente de Dispatcher comme d’autres opérations.This is because DispatcherTimer operations are placed on the Dispatcher queue like other operations. Lorsque l’opération de DispatcherTimer s’exécute dépend des autres travaux de la file d’attente et de leurs priorités.When the DispatcherTimer operation executes is dependent on the other jobs in the queue and their priorities.

Si un System.Timers.Timer est utilisé dans une application WPFWPF, il est intéressant de noter que le System.Timers.Timer s’exécute sur un thread différent du thread interface utilisateur (UI)user interface (UI).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 interface utilisateur (UI)user interface (UI) thread. Pour accéder aux objets sur le thread interface utilisateur (UI)user interface (UI), il est nécessaire de poster l’opération sur le Dispatcher du thread interface utilisateur (UI)user interface (UI) à l’aide de Invoke ou d' BeginInvoke.In order to access objects on the interface utilisateur (UI)user interface (UI) thread, it is necessary to post the operation onto the Dispatcher of the interface utilisateur (UI)user interface (UI) thread using Invoke or BeginInvoke. Les raisons de l’utilisation d’un DispatcherTimer par opposition à un System.Timers.Timer sont que l' DispatcherTimer s’exécute sur le même thread que le Dispatcher et qu’un DispatcherPriority peut être défini sur le 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.

Une DispatcherTimer conservera un objet actif chaque fois que les méthodes de l’objet sont liées à la minuterie.A DispatcherTimer will keep an object alive whenever the object's methods are bound to the timer.

Constructeurs

DispatcherTimer()

Initialise une nouvelle instance de la classe DispatcherTimer.Initializes a new instance of the DispatcherTimer class.

DispatcherTimer(DispatcherPriority)

Initialise une nouvelle instance de la classe DispatcherTimer qui traite des événements de minuterie à la priorité spécifiée.Initializes a new instance of the DispatcherTimer class which processes timer events at the specified priority.

DispatcherTimer(DispatcherPriority, Dispatcher)

Initialise une nouvelle instance de la classe DispatcherTimer qui s'exécute sur le Dispatcher spécifié à la priorité spécifiée.Initializes a new instance of the DispatcherTimer class which runs on the specified Dispatcher at the specified priority.

DispatcherTimer(TimeSpan, DispatcherPriority, EventHandler, Dispatcher)

Initialise une nouvelle instance de la classe DispatcherTimer qui utilise l'intervalle de temps, la priorité, le gestionnaire d'événements et le Dispatcher spécifiés.Initializes a new instance of the DispatcherTimer class which uses the specified time interval, priority, event handler, and Dispatcher.

Propriétés

Dispatcher

Obtient l'Dispatcher associée à cette DispatcherTimer.Gets the Dispatcher associated with this DispatcherTimer.

Interval

Obtient ou définit la durée séparant les graduations de la minuterie.Gets or sets the period of time between timer ticks.

IsEnabled

Obtient ou définit une valeur qui indique si la minuterie est active.Gets or sets a value that indicates whether the timer is running.

Tag

Obtient ou définit un objet de données défini par l'utilisateur.Gets or sets a user-defined data object.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
Start()

Démarre DispatcherTimer.Starts the DispatcherTimer.

Stop()

Arrête DispatcherTimer.Stops the DispatcherTimer.

ToString()

Retourne une chaîne qui représente l'objet en cours.Returns a string that represents the current object.

(Hérité de Object)

Événements

Tick

Se produit lorsque l'intervalle de la minuterie s'est écoulé.Occurs when the timer interval has elapsed.

S’applique à