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 :

Utilisation du Timer


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 22
    Par défaut Utilisation du Timer
    ' '

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Bonjour,

    Perso je l'utilise de la manière suivante :

    - Soit je le déclare dans ma variable, soit en attribut si j'en ai besoin à plusieurs endroits dans mon code

    - Je fixe ensuite quand il doit se lancer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    timer.Interval = TimeSpan.FromSeconds(15);
    - Je crée la callback qui doit être appelée à la fin du Timer d'une des deux manières suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    timer.OnTick += (sender, e) =>
    {
        // Do some stuff
        timer.Stop(); // Pour qu'il ne se lance qu'une fois
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    timer.OnTick += DoSomeStuff;
     
    private void DoSomeStuff(object sender, EventArgs e)
    {
        // Do some stuff
        timer.Stop(); // Pour qu'il ne se lance qu'une fois
    };
    Et une fois que tu ça est fait, je déclenche mon Timer quand c'est nécessaire :

    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 22
    Par défaut
    Merci à toi MaximePalmisano,

    Je n'arrive cependant pas à implémenter correctement ta proposition dans mon code.

    Ce Timer me rend fou, j'ai lu plusieurs doc mais je vois vraiment pas comment l'exploiter.

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Qu'est ce qui te pose problème ? Quels sont les points où tu bloques ?
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 22
    Par défaut
    Mon programme doit:

    donner 15 secondes à l'utilisateur avant de cliquer sur le boutton. Si ce délais est dépassé un message d'erreur apparait.

    Si l'utilisateur à cliquer sur le boutton avant l'interval de 15 secondes, j'appelle ma fonction ChargerQuestion() qui s'occupe de passer à l'étape suivante.

    Je ne comprend pas comment développer cela dans mon code.

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Tu crées un attribut Timer dans ta classe que tu instancies.

    Ensuite, quand tu dois déclencher le chrono avec timer.Start(); quand doit commencer le décompte des 15 secondes.

    Si le décompte se finit, la callback YouLost(); (par exemple) est appelée et tu arrêtes le timer puis fais le traitement correspondant au fait qu'il n'a pas appuyé.

    Si il clique sur le bouton, dans la callback du bouton tu arrêtes le timer avant qu'il ne se déclenche avec timer.Stop();

    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
     
    public class MyGame
    {
        private Timer myTimer = new Timer();
     
        public MyGame()
        {
            // Do some stuff
            myTimer.Interval = TimeSpam.FromSeconds(15);
            myTimer.Tick += UserLost;
        }
     
        public void LaunchTimer()
        {
            myTimer.Start();
        }
     
        public void UserClickedOnTheGoddamnButton(object sender, EventArgs e)
        {
            myTimer.Stop(); // We stop the timer before the tick
            // Do some winner stuff
        }
     
        private void UserLost(object sender, EventArgs e)
        {
            timer.Stop(); // We stop the timer so it can't tick twice
            // Do some loser stuff
        }
    }
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

Discussions similaires

  1. utilisation des timers
    Par iwio dans le forum Allegro
    Réponses: 1
    Dernier message: 25/06/2006, 23h55
  2. Utilisation de Timer dans Python
    Par aliassaf dans le forum Général Python
    Réponses: 5
    Dernier message: 17/06/2006, 19h06
  3. [C#.net] utiliser un timer
    Par Mandalar dans le forum DirectX
    Réponses: 4
    Dernier message: 26/01/2006, 22h17
  4. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 14h07
  5. Utilisation de Timer
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 07/07/2004, 23h27

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