Partage via


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.

public ref class DispatcherTimer
public class DispatcherTimer
type DispatcherTimer = class
Public Class DispatcherTimer
Héritage
DispatcherTimer

Exemples

L’exemple suivant crée un DispatcherTimer qui met à jour le contenu d’un Label et appelle la InvalidateRequerySuggested méthode sur le CommandManager.

Un DispatcherTimer objet nommé dispatcherTimer est créé. Le gestionnaire d’événements dispatcherTimer_Tick est ajouté à l’événement Tick de dispatcherTimer. est Interval défini sur 1 seconde à l’aide d’un TimeSpan objet et le minuteur est démarré.

//  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()

Le Tick gestionnaire d’événements met à jour un Label qui affiche la seconde actuelle, et il appelle InvalidateRequerySuggested sur .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

le DispatcherTimer est réévalué en haut de chaque Dispatcher boucle.

Il n’est pas garanti que les minuteurs s’exécutent exactement lorsque l’intervalle de temps se produit, mais ils ne s’exécutent pas avant l’intervalle de temps. Cela est dû au fait que DispatcherTimer les opérations sont placées sur la file d’attente Dispatcher comme les autres opérations. L’exécution de l’opération DispatcherTimer dépend des autres travaux de la file d’attente et de leurs priorités.

Si un System.Timers.Timer est utilisé dans une application WPF, il convient de noter que le System.Timers.Timer s’exécute sur un thread différent de celui de l’interface utilisateur. Pour accéder aux objets du thread d’interface utilisateur, il est nécessaire de publier l’opération sur le Dispatcher du thread d’interface utilisateur à l’aide Invoke de ou BeginInvoke. Les raisons de l’utilisation d’un DispatcherTimer par opposition à un System.Timers.Timer sont que le DispatcherTimer s’exécute sur le même thread que le Dispatcher et un DispatcherPriority peut être défini sur le DispatcherTimer.

Un DispatcherTimer maintient un objet en vie chaque fois que les méthodes de l’objet sont liées au minuteur.

Constructeurs

DispatcherTimer()

Initialise une nouvelle instance de la classe DispatcherTimer.

DispatcherTimer(DispatcherPriority)

Initialise une nouvelle instance de la classe DispatcherTimer qui traite des événements de minuterie à la priorité spécifiée.

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.

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.

Propriétés

Dispatcher

Obtient l'Dispatcher associée à cette DispatcherTimer.

Interval

Obtient ou définit la durée séparant les graduations de la minuterie.

IsEnabled

Obtient ou définit une valeur qui indique si la minuterie est active.

Tag

Obtient ou définit un objet de données défini par l'utilisateur.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Start()

Démarre DispatcherTimer.

Stop()

Arrête DispatcherTimer.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Événements

Tick

Se produit lorsque l'intervalle de la minuterie s'est écoulé.

S’applique à