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 évenement unique


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Points : 87
    Points
    87
    Par défaut Timer évenement unique
    Bonjour a tous,

    J’aimerai lancer un timer puis lorsqu’il a terminé son interval, exécuter un évènement et arrêter le timer.
    Mon code actuel ressemble à ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    using System.Timers;
     
    Ma fonction (...)
    {
         Timer myTimer = new Timer(1000); 
         myTimer.Enabled = true;
         myTimer.Elapsed += OnTimerEvent;
    }
     
    private static void OnTimerEvent(object sender, EventArgs e) 
    {
          [...]
          Je voudrai aussi stopper le timer ici
    }
    Le problème étant que le nom du timer n’est pas connu dans l’évènement, donc comment l’arrêter ?
    Bien sur il n'est pas possible pour moi de déclarer le timer global...

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Points : 87
    Points
    87
    Par défaut
    OK, j'ai trouvé comment faire.

    Il suffit d'utiliser la propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTimer.AutoReset = false
    Et le timer ne tickera qu'une fois.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    De façon plus générale, l'objet sender dans la signature d'une méthode event représente l'objet qui a levé l'évènement.
    Donc ici, tu peux le transtyper en Timer pour pouvoir accéder à ses méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((System.Timers.Timer)sender).Enabled = false;
    Mais ta méthode reste valable dans ce cas bien entendu !

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

Discussions similaires

  1. Timer sur évenement
    Par Isythiel dans le forum C#
    Réponses: 4
    Dernier message: 12/05/2009, 14h59
  2. [Parallèle] Timer / évenements
    Par oodini dans le forum C++
    Réponses: 2
    Dernier message: 12/11/2008, 15h03
  3. Réponses: 2
    Dernier message: 22/07/2005, 22h19
  4. Timer en µsecondes
    Par Dagobert dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 25/11/2002, 00h59

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