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 :

Timer avec service windows


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut [Résolu]Timer avec service windows
    Bonjour,j'ai un problème avec mon timer,soit il ne s'enclenche pas,et quand je modifie un peu mon prog,il me dit que mon service ne fait rien.
    Je ne comprends où il faut le place,mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    protected override void OnStart(string[] args)
            {
                timer1.Interval = 5000;
                timer1.Enabled = true;
                Process();
                timer1.Enabled = false;
     
            }
            protected override void OnStop()
            {
            }
            private void Process()
            {
                try
                {
     
                    parametre parametre = new parametre();
                    string repertoireentre = ConfigurationSettings.AppSettings["Repertoire_Entree"];
                    parametre.repertoireEntree = @repertoireentre;
                    //parametre.repertoireEntree = @"C:\Test";
                    string repertoiresortie = ConfigurationSettings.AppSettings["Repertoire_Sortie"];
                    parametre.repertoireSortie = @repertoiresortie;
     
                    //trouver moyen de compter le nombre de fichier dans repertoire entrée
                    DirectoryInfo dirPath = new DirectoryInfo(parametre.repertoireEntree);
                    List<string> NomFichier = new List<string>();
                    String FileNameNoExtension;
                    if (dirPath.Exists)
                    {
                        //Doc est null
    .....
    .....
    .....
    catch (Exception e)
                {
                    EventLog myLogName = new EventLog();
                    eventLog1.WriteEntry(e.Message);
                }
            }
            private void timer1_Tick_1(object sender, EventArgs e)
            {
            }
        }
    }

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut.

    A la vue de ton bout de code, cela me paraît logique qu'il ne se passe pas grand chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected override void OnStart(string[] args) {
    	timer1.Interval = 5000;
    	timer1.Enabled = true;
    	Process();
    	timer1.Enabled = false;   
    }
    // ...
    private void timer1_Tick_1(object sender, EventArgs e) {
    }
    Quand ton service démarre :
    • tu mets un Interval à ton timer
    • tu mets des Enabled à true / false, mais jamais tu ne démarres ton timer
    • tu ne mets pas de handler sur l'évènement Elapsed de ton timer

    J'imagine que ton service démarre, exécute une fois ta méthode Process, et pis c'est tout

    Ce que tu peux faire :
    1. t'assurer que ton timer est bien du type System.Timers.Timer
    2. tu le démarres dans le OnStart (laisse de côté les Enabled pour l'instant)
    3. tu le stoppes dans le OnStop
    4. et SURTOUT dans le OnStart tu mets une méthode sur un handler

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected override void OnStart(string[] args) {
    	timer1.Interval = 5000;
    	timer1.Start();
    	// ...
    	timer1.Elapsed += new System.Timers.ElapsedEventHandler(taMethode);
    }
    // ...
    protected override void OnStop() {
    	timer1.Stop();
    }
    private void taMethode(object sender, EventArgs e) {
    	// Ce qui doit être exécuté à chaque passage du timer
    }
    Bon courage

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 137
    Points : 31
    Points
    31
    Par défaut
    Merci pour ta réponse complète,mon timer marche parfaitement.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected override void OnStart(string[] args)
            {
                clock = new System.Timers.Timer();
               clock.Interval = 5000;
                clock.Start();
                clock.Elapsed += new System.Timers.ElapsedEventHandler(Process);
            }
            protected override void OnStop()
            {
                clock.Stop();
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 14/12/2014, 17h26
  2. Mon premier service Windows avec timer
    Par OmegA_MRS dans le forum Services Windows
    Réponses: 7
    Dernier message: 20/02/2012, 11h56
  3. Problème avec service Windows et Outlook
    Par mourdino dans le forum Services Windows
    Réponses: 5
    Dernier message: 18/06/2010, 00h47
  4. Réponses: 2
    Dernier message: 29/09/2009, 10h13
  5. [C#][service windows] problème de débutant avec 1 timer
    Par Nycos62 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2005, 11h22

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