DispatcherTimer Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é. |