IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[c#] Effectuer une tâche à une heure précise, ou régulièrement


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 284
    Points : 79
    Points
    79
    Par défaut [c#] Effectuer une tâche à une heure précise, ou régulièrement
    Bonjour à tous,

    J'ai deux choses que j'aimerai réaliser et je pense que c'est peu être la même solution qu'il faut mettre en place.

    1) Déclencher une action à une heure donnée
    Ex: Sauvegarde tous les midi à 12h

    2) Répéter une action à chaque intervalle de temps
    Ex: Synchroniser n'importe quoi chaque 15 min

    La solution que je vois, réaliser une application WPF dont la fenêtre n'est pas visible, affichage d'un notifyIcon afin de modifier les paramètres et un thread qui tourne en permanence.

    Hors j'ai peur que cette méthode soit un peu gourmande non?
    Comment je compte faire?
    Pour le 1), je vérifie dans le thread si l'heure est égale à l'heure voulue.
    Pour le 2), je passe l'heure courante à mon thread, dans celui je vérifie si ça fait 15min.

    Est il possible de faire mieux?

    UPDATE:
    Pour le projet 2), je viens de mettre sur la main DispatcherTimer qui me semble être une solution plus apropriée!

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Bonsoir.

    Tu as deux solutions préférables, qui reviennent toutes les deux à utiliser un service Windows.
    * Ajouter une tâche au planificateur des tâches (task scheduler), tu peux trouver quelques wrappers dotnet tout faits vers l'API Win32.
    * Créer ton propre service windows, tu trouveras quelques exemples sur le net.

    Enfin, si tu retenais ton idée de base, une appli WPF est plus longue à charger (plusieurs biblios lourdingues) et, sur XP, la première fois qu'une appli WPF est chargée elle doit initialiser le cache des polices ce qui prend plusieurs secondes et retarderait significativement le démarrage du PC si c'est le moment où ton appli doit être lancée. A proscrire.

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Un service windows et utiliser la librairie Quartz.Net

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2021, 16h57
  2. Notification à une date et heure précise
    Par AmineDrX dans le forum Android
    Réponses: 4
    Dernier message: 24/06/2015, 06h23
  3. Planification d'une tâche une fois par semaine
    Par wagui31 dans le forum Général Java
    Réponses: 5
    Dernier message: 25/09/2012, 12h02
  4. Passage de paramètres d'une tâche à une transformation
    Par allserv dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 18/08/2010, 17h33
  5. [PR-2007] une ressource = une tâche à la fois
    Par m-a-n-u dans le forum Project
    Réponses: 6
    Dernier message: 02/06/2010, 08h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo