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

Framework .NET Discussion :

timer pas assez precis


Sujet :

Framework .NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Points : 60
    Points
    60
    Par défaut timer pas assez precis
    Bonjour,

    Je suis en train dutiliser un timer dans un projet pour lancer une fonction a intervalle regulier.

    voila 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
     
            private static void OnPollLogResolutionEvent(object source, ElapsedEventArgs e)
            {
                Console.WriteLine(DateTime.Now.ToString("o") + " Slt les copains");
            }
     
            static void Main(string[] args)
            {
     
     
                Timer aTimer = new Timer();
                // Set the Interval to the log Resolution seconds.
                aTimer.Elapsed += new ElapsedEventHandler(OnPollLogResolutionEvent);
                aTimer.Interval = 2000;
                aTimer.Enabled = true;
                aTimer.Start();
                Console.WriteLine("Service lauched at: " + DateTime.Now.ToString("o"));
                System.Threading.Thread.Sleep(System.Threading.Timeout.infinite;
    }
    Quand je lance ce bout de code voila le resultat:

    Service lauched at: 2007-05-18 14:47:15.9826045
    2007-05-18 14:17.9993419 Salut les copains
    2007-05-18 14:20.0004427 Salut les copains
    2007-05-18 14:22.0015435 Salut les copains
    2007-05-18 14:24.0026443 Salut les copains

    La fonction lancee a intervalle regulier affiche l'heure toutes les deux secondes (et jattendrai quelle affiche tout le temps soit des minutes paires soit impaires)

    Meric d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    Salut,

    En fait il faut savoir quel composant Timer tu utilise, en effet il y a deux classes Timer dans le Framework, celle des winforms et celle du Threading...

    Celle des WinForms est nettement plus précise que celle du Threading. En effet, celle du threading utilise des sleep sur des threads, ce qui n'est pas précis puisque référencé sur le temps ordonnanceur, alors que les winforms font un appel à l'api windows pour créer une alerte système, ce qui est nettement plus fiable car basé sur les tips d'horloge système, et non l'ordonnanceur.

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Salut,
    En fait moi j'en utilise un troisieme: System.Timers.Timer. Je voulais juste savoir comment il se place par rapport aux autres en terme de fiabilite. Merci.

Discussions similaires

  1. Postmaster pas assez precis sur exchange
    Par abdelhamidem dans le forum Exchange Server
    Réponses: 0
    Dernier message: 24/02/2009, 10h39
  2. "Pas assez de timers disponibles"
    Par Chabala dans le forum Langage
    Réponses: 3
    Dernier message: 21/12/2007, 12h05
  3. [Timer]Timer pas très précis
    Par harold63 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 25/07/2005, 08h36

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