qu'est-ce qu'une différence between System.Windows.Forms.Timer()
et System.Windows.Threading.DispatcherTimer()
? Dans quels cas, faut-il les utiliser? des meilleures pratiques?
Windows.Forms.Timer
utilise la boucle de message de Windows Forms pour traiter les événements du minuteur. Il doit être utilisé lors de l'écriture d'événements de minutage qui sont utilisés dans les applications Windows Forms et que vous souhaitez que le minuteur se déclenche sur le thread d'interface utilisateur principal.
DispatcherTimer
est le mécanisme de synchronisation WPF. Il doit être utilisé lorsque vous souhaitez gérer le minutage de la même manière (bien que cela ne soit pas limité à un seul thread - chaque thread a son propre répartiteur) et que vous utilisez WPF. Il déclenche l'événement sur le même thread que le Dispatcher.
En général, WPF == DispatcherTimer
et Windows Forms == Forms.Timer
.
Cela étant dit, il y a aussi System.Threading.Timer
, qui est une minuterie class
qui se déclenche sur un thread séparé. C'est bon pour le timing purement numérique, où vous n'essayez pas de mettre à jour l'interface utilisateur, etc.
J'ai trouvé un bon article sur les minuteries avec de petits exemples ici: http://www.progware.org/Blog/post/Timers-in-WPF.aspx
Comme conclusion:
la source