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

 

  1. #1
    Membre régulier Avatar de fabrice.s
    Homme Profil pro
    Inscrit en
    septembre 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2010
    Messages : 117
    Points : 86
    Points
    86

    Par défaut Timer dans Service Windows

    Bonjour à tous,

    J'ai développé une application il y a quelques temps (qui fonctionne parfaitement) que j’exécute via une tâche planifiée.
    J'aimerais maintenant aller un peu plus loin, et créer un service qui m’exécute mon application toute les minutes.

    J'ai crée un service en c# sous visual studio 2012 avec le code suivant dans mon service1.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            protected override void OnStart(string[] args)
            {
                Process.Start("c:\\MyApp\\MyApp.exe");
            }
    L'application démarre parfaitement, mais naturellement ne se relance pas toutes les minutes.

    J'ai donc essayé d'ajouter un timer dans mon service1.cs[Design], dans les propriétés je l'ai activé par défaut, et configuré mon timer à 60000ms.
    et j'ai modifié mon code comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected override void OnStart(string[] args)
            {
                timer1.Start();
            }
     
            protected override void OnStop()
            {
            }
     
            private void timer1_Tick(object sender, EventArgs e)
            {
                Process.Start("c:\\MyApp\\MyApp.exe");
            }
    Et là mon application ne démarre plus du tout.
    Je n'arrive pas identifier mon erreur dans l'utilisation de mon timer pour exécuter mon application.

    Auriez-vous une idée sur l'erreur que j'ai commis?

    Merci de votre aider.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    avril 2007
    Messages
    13 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 13 180
    Points : 24 058
    Points
    24 058

    Par défaut

    quel type de timer ? (il y en a 3 ou 4 dans le Framework)

    le Windows.forms.timer ne peut pas etre utilisé dans un service, soit threading.timer soit timers.timer

    soit démarrer un thread qui fait un while true avec un thread.sleep(60000)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Responsable .NET & Magazine

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    2 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 2 332
    Points : 9 338
    Points
    9 338
    Billets dans le blog
    21

    Par défaut

    Bonjour,

    Il nous faudrait plus de code pour aider. Le code complet du service, ainsi que le code généré (pour voir comment est initialisé le timer).

    Lire aussi l'article que j'ai écrit sur la réalisation de tâches périodiques. Cela pourrait donner quelques pistes...
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. Crypto et WCF dans Service Windows
    Par maxdwarf dans le forum Services Web
    Réponses: 1
    Dernier message: 09/04/2010, 06h27
  2. Timer avec service windows
    Par Mathew77 dans le forum C#
    Réponses: 2
    Dernier message: 28/12/2009, 11h46
  3. Timer dans un Windows Service
    Par Identifiant dans le forum C#
    Réponses: 5
    Dernier message: 26/05/2009, 15h28
  4. Timer inopérant dans service windows
    Par pdgnr dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/05/2008, 15h38
  5. Evènement Firebird dans service Windows
    Par VLDG dans le forum Firebird
    Réponses: 8
    Dernier message: 09/08/2007, 22h28

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