VB.net Effectuer la tâche à l'Heure prévue
j'ai besoin pour effectuer une tâche à un certain moment à l'aide de l'aide de l'utilisateur saisie des Heures et des Minutes.
Je suis en train de penser à quelque chose comme l'aide d'une sorte de boucle qui à chaque fois en boucle, vérifie si la Now().Hour
correspond HourChoice
et la Now().Minute
correspond à la MinuteChoice
En cela, j'ai aussi une option utilisateur à choisi "AM" ou "PM", et si TimeOfDay = "PM"
, ajouter 12 heures (Le Now().Hour
est l'heure militaire).
EDIT:je ne veux ce à exécuter une seule fois à un moment, pas tous les jours.
- Est-ce une application web, application de bureau, de service?
- un vb.net application de bureau
- pour référence : Créer une tâche planifiée à l'aide de VB.net
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
System.Threading.Timer
pour ce faire. Au lieu d'une boucle qui fonctionne en permanence et dort, vous pouvez définir l'intervalle de laTimer
à la différence entre maintenant et le temps choisi et lesTimerCallback
à laSub
que la tâche de travail. Réglage de la temporisation à 0 ouTimeout.Infinite
sera assurez-vous que ce n'est exécuté qu'une fois.EDIT: Exemple
Ensuite, vous avez juste besoin d'un Sous pour faire vos tâches:
Pas encore testé mais cela devrait fonctionner. Dans le laps de Temps vous pouvez définir les jours, les heures, les minutes, les secondes.
Plus peut être trouvé sur MSDN
Vous n'avez pas à boucle,
Il suffit d'ajouter un Timer pour votre formulaire, définissez son intervalle de 500 de sorte qu'il se déclenche toutes les 500 millisecondes.
Activer via un Bouton pour démarrer votre Tâche.
Ensuite sur votre Minuterie.Tique De L'Événement:
(Date.Now - Date.Now.AddHours(2)).TotalMilliseconds
Un peu tard pour ajouter une réponse à cette question, mais: Vous pouvez utiliser un Système standard.De Windows.Les formulaires.Minuterie. Définissez l'intervalle de la différence en millisecondes entre le temps et Maintenant(), puis démarrer la minuterie.