web-dev-qa-db-fra.com

Pourquoi existe-t-il 5 versions de classes de temporisation dans .NET?

Pourquoi y a-t-il cinq classes de temporisation dans le framework .Net, à savoir:

  1. System.Timers.Timer
  2. System.Threading.Timer
  3. System.Windows.Forms.Timer
  4. System.Web.UI.Timer
  5. System.Windows.Threading.DispatcherTimer

Pourquoi existe-t-il plusieurs versions de la classe Timer? Et quelles sont les différences entre eux?

64
Mohammed A. Fadil

Timers.Timer génère un événement après un intervalle défini, avec une option pour générer des événements récurrents. MSDN

Windows.Forms.Timer est un contrôle pour les formulaires.

Web.UI.Timer effectue des publications de pages Web asynchrones ou synchrones à un intervalle défini. MSDN

Threading.Timer est le minuteur des rappels. Crée un nouveau thread pour travailler. Servi par les threads du pool de threads. MSDN

Ainsi, ces minuteries ont des objectifs différents, elles sont également servies par différents outils.

11
Victor Gorban

Voici une description des chronomètres principaux et des points que je trouve les plus remarquables.

Winforms.Timer

  • les ticks sur le thread d'interface utilisateur ne garantissent pas de ticket à un moment précis
  • ticks retardés jusqu'à ce que le thread d'interface utilisateur soit inactif
  • sautera les tiques si le thread d'interface utilisateur est occupé

DispatcherTimer

  • invoqué sur le thread d'interface utilisateur
  • peut définir la priorité du niveau d'inactivité requis pour générer un tick
  • sautera les tiques

Threading.Timer

  • ticks sur un thread de travail de threadpool - aucune option pour spécifier le thread
  • les tiques sont toujours tirées à temps
  • aucun n'est ignoré - vous devez vous prémunir contre les nouveaux ticks pendant que vous traitez encore un ancien tick

Timers.Timer

  • enrouler autour de la minuterie d'enfilage
  • ticks sur un thread de travail provenant du pool de threads CLR
  • peut forcer à cocher sur un thread spécifique en fournissant un objet SynchronizationObject
  • les tiques sont toujours tirées à temps
  • aucun n'est ignoré
  • mange silencieusement des exceptions
1
Bill Tarbell