52 votes

Comment utiliser la classe .NET Timer pour déclencher un événement à un moment précis ?

J’aimerais qu’un événement soit déclenché dans mon application qui fonctionne en continu pendant la journée à une certaine heure, disons à 16h00. J’ai pensé à faire fonctionner la minuterie toutes les secondes et lorsque l’heure est égale à 16h00, exécutez l’événement. Cela fonctionne. Mais je me demande s’il y a un moyen d’obtenir le rappel une fois à 16h00 et de ne pas avoir à continuer à vérifier.

35voto

VoteCoffee Points 404

À partir de .NET 4.5, il existe une solution vraiment propre :

Voici une solution sans asynchrone/attendre :

Il convient de noter que cela ne fonctionne que pendant environ 24 jours en raison de la valeur int32 max, ce qui est suffisant pour votre cas, mais à noter.

7voto

Saeed Amiri Points 16317

Vous pouvez utiliser Task Sceduler sur Windows Voir l’exemple de déclencheur quotidien pour plus de détails.

ou utilisez le code ci-dessous si vous voulez l’écrire vous-même:

6voto

noontz Points 322

Prenant la tête de VoteCoffees, voici une solution compacte basée sur les événements:

Consommateur: »

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X