Timers Questions

AshVah Messages postés 9 Date d'inscription jeudi 26 juillet 2012 Statut Membre Dernière intervention 19 janvier 2013 - 17 janv. 2013 à 14:33
AshVah Messages postés 9 Date d'inscription jeudi 26 juillet 2012 Statut Membre Dernière intervention 19 janvier 2013 - 19 janv. 2013 à 13:19
Bonjour ! Je cherche à créer deux timers dans une application console avec deux intervalles différentes.

J'ai créée une classe timer ou j'ai déclaré deux timers différents mais la valeur de l'intervalle reste indentique au deux timer.

Voilà le code source : en attendant votre aide.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Timers;

namespace TimerEtValeurTam
{
    class Program
    {
        static void Main(string[] args)
        {
            ConsoleKeyInfo cki;

            Timer Timers = new Timer();
            Timer Faim = new Timer();

            Timers.Timer1Init();
            Faim.Timer2Init();
            
            cki = Console.ReadKey();
            do
            {
                if (cki.Key == ConsoleKey.A)
                {
                    Console.WriteLine("  Il s'est écoulé : " + Timers._intervalle1 + " seconde.");
                    Console.ReadKey();
                }

                if (cki.Key == ConsoleKey.F)
                {
                    Console.WriteLine("  Il s'est écoulé : " + Faim._intervalle2 + " seconde.");
                    Console.ReadKey();
                }
            }


            while (cki.Key != ConsoleKey.Escape);
        }

        public void dispatherTimer()
        { 
           
        }
    }

    public class Timer
    {
        public int _seconde1 = 0;
        public int _intervalle1 = 1000;
        public int _seconde2 = 0;
        public int _intervalle2 = 10000;

        public void Timer1Init()
        {
            System.Timers.Timer _Timer1 = new System.Timers.Timer();
            _Timer1.Interval = _intervalle1;
            _Timer1.Elapsed += Timer1Tick;
            _Timer1.Enabled = true;
        }

        public void Timer2Init()
        {
            System.Timers.Timer _Timer2 = new System.Timers.Timer();
            _Timer2.Interval = _intervalle2;
            _Timer2.Elapsed += Timer2Tick;
            _Timer2.Enabled = true;
        }

        public void Timer1Tick(object sender, ElapsedEventArgs e)
        {
            _seconde1++;
        }

        public void Timer2Tick(object sender, ElapsedEventArgs e)
        {
            _seconde2++;
        }


        //public int faim
        //{
        //    get { return _faim; }
        //    set { _faim = value; }
        //}

        //public void TimerTick(object sender, ElapsedEventArgs e)
        //{
        //    _seconde++;
        //}

        //public void TimerFaimInit()
        //{
        //    System.Timers.Timer _TimerFaim = new System.Timers.Timer();
        //    _TimerFaim.Interval = 10000;
        //    _TimerFaim.Elapsed += TimerFaimTick;
        //    _TimerFaim.Enabled = true;
        //}

        //public void TimerFaimTick(object sender, ElapsedEventArgs e)
        //{
        //    _faim++;
        //}

    }

}

3 réponses

cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
17 janv. 2013 à 16:12
Bonjour,

Alors j'ai pas VS sous les yeux donc je ne peux pas faire de test, mais:
- Tu affiches dans ta console les variables fixes d'intervalle et non les secondes écoulées.
- n'est ce pas l'évènement _Timer1.Tick += Timer1Tick; qu'il faut utiliser au lieu de Elapsed?

En espérant que ça aide ;)
0
AshVah Messages postés 9 Date d'inscription jeudi 26 juillet 2012 Statut Membre Dernière intervention 19 janvier 2013 1
19 janv. 2013 à 13:15
J'essaye avec _Timer1.Tick += Timer1Tick; et je te dit !
0
AshVah Messages postés 9 Date d'inscription jeudi 26 juillet 2012 Statut Membre Dernière intervention 19 janvier 2013 1
19 janv. 2013 à 13:19
Non cela ne reconnait pas la méthode :/ vs me dit qu'il manque un assembly.
0
Rejoignez-nous