Introduction aux composants Timer serveur
Mise à jour : novembre 2007
Les composants Timer serveur vous permettent de spécifier un intervalle récurrent au terme duquel un événement sera déclenché dans votre application. Vous pouvez ensuite gérer cet événement de sorte qu'il fournisse un traitement régulier. Imaginons, par exemple, que vous possédiez un serveur critique qui doit absolument fonctionner jour et nuit, sept jours par semaine. Vous pouvez créer un service qui utilise un composant Timer pour vérifier périodiquement ce serveur afin de s'assurer qu'il fonctionne correctement. Si le système ne répond pas, le service peut tenter de redémarrer le serveur ou avertir un administrateur.
Remarque : |
---|
L'intervalle des composants Timer serveur est exprimé en millisecondes. |
Composants Timer serveur, Timer Windows et Timer thread
Il existe trois contrôles Timer dans Visual Studio et le .NET Framework :
Un Timer serveur que vous pouvez ajouter à la Boîte à outils
Un Timer Windows, toujours disponible dans la Boîte à outils
Une Timer thread, disponible par programme
Le Timer Windows est optimisé pour une utilisation dans les applications Windows Forms. Le composant Timer serveur est quant à lui une mise à jour du composant Timer traditionnel qui a été optimisé pour une utilisation dans un environnement serveur. Le composant Timer thread est un composant simple et léger qui utilise des méthodes de rappel plutôt que des événements et qui est fourni par des threads Threadpool.
Il existe deux types de threads dans l'architecture Win32 : les threads d'interface utilisateur (UI) et les threads de travail. Les threads UI restent la plupart du temps inactives et attendent l'arrivée de messages dans leurs boucles de messages. Dès qu'elles reçoivent un message, elles le gèrent et attendent ensuite le suivant. En revanche, les threads de travail servent à l'exécution du traitement en arrière-plan et n'utilisent pas les boucles de messages. Le composant Timer Windows et le composant Timer serveur s'exécutent tous deux à l'aide d'une propriété Interval. L'intervalle du composant Timer thread est défini dans le constructeur Timer. Les composants Timer sont conçus pour différentes fonctions, comme le montre clairement leur gestion de threads :
Le composant Timer Windows est conçu pour un environnement monothread où les threads UI sont utilisées pour exécuter le traitement. La précision des composants Timer Windows est limitée à 55 millisecondes. Ces composants Timer classiques exigent du code utilisateur qu'il ait une pompe de messages UI disponible et qu'il opère toujours à partir du même thread, ou qu'il redirige l'appel vers un autre thread. Pour un composant COM, ce type de comportement nuirait aux performances.
Le composant Timer serveur est conçu pour être utilisé avec des threads de travail dans un environnement multithread. Dans la mesure où ils utilisent une architecture différente, les composants Timer serveur peuvent être beaucoup plus précis que les composants Timer Windows. Les composants Timer serveur peuvent se déplacer d'un thread à l'autre pour gérer les événements déclenchés.
Le composant Timer thread est utile dans des scénarios où les messages ne sont pas pompés sur le thread. Par exemple, le composant Timer Windows repose sur une prise en charge de la minuterie par le système d'exploitation et si vous n'êtes pas en train de pomper des messages sur le thread, l'événement associé à votre composant Timer ne se produira pas. Le composant Timer thread est plus utile dans ce cas.
Le composant Timer Windows se trouve dans l'espace de noms System.Windows.Forms, le composant Timer serveur dans l'espace de noms System.Timers, et le composant Timer thread dans l'espace de noms System.Threading.
Voir aussi
Tâches
Comment : créer des instances de composants Timer serveur
Comment : surveiller des composants Timer serveur
Concepts
Architecture de programmation de composants Timer