Objet Timer en C#

Résolu
cs_Bumcello Messages postés 30 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 janvier 2008 - 8 nov. 2006 à 13:10
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 - 8 nov. 2006 à 17:23
Bonjour,
Je souhaite récupérer le temps que va mettre l'instruction suivant grâce à l'objet Timer en mode console. Et le problème c'est que cela retourne toujours la valeur 100 même en changeant le nombre de boucle, avec myTimer.Interval.
Je ne vois pas comment faire :
       - Peut être que j'utilise mal le Timer
       - Peut être "myTimer.Interval"
je ne sais pas donc si je pourrai avoir de l'aide pour m'expliquer ou me montrer comment je pourrai faire svp.

Voici le programme commenter.

using System;
namespace ConsoleApplication1
{
    class Class1
    {
        static void Main(string[] args)
        {
            // Création de l'objet Timer myTimer
            System.Timers.Timer myTimer = new System.Timers.Timer ();
            Console.WriteLine();
            // Démarage du timer
            myTimer.Start();
            for (int i =0;i<100;i++)
            {
                Console.Write (".");
            }
            // Arret du timer
            myTimer.Stop();
            Console.WriteLine();
            // Récuperer le tps qui s'est écouler avec interval
            Console.WriteLine("Temps = " + myTimer.Interval );
            Console.ReadLine();
        }
    }
}

MERCI D'AVANCE

Cordialement Bumcello

C'est pas la rue kétanou mais nous qui sommes à la rue
        
                      &

2 réponses

cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
8 nov. 2006 à 17:23
Oui, DateTime fait l'affaire ;p c de l'ordre du milliseconde.

DateTime dt = DateTime.Now;
//tu fais tes instructions
Console.WriteLine("Durée : " + (TimeSpan)(DateTime.Now - dt));

J'ai pas testé mais ça doit fonctionner.

[:D] @++
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
8 nov. 2006 à 13:32
Hello,

C'est normal, car l'objet Timer ne sert pas à mesurer le temps, mais à lever un event lorsqu'un délai est passé.
C'est ce délai que retourne la propriété Interval.

Pour calculer un temps comme tu veux le faire, tu peux utiliser simplement les DateTime, en regardant le DateTime.Now avant et après et en faisant la différence. Ce n'est pas extêmement prècis, mais ça suffit la plupart du temps.
Si tu as besoin de quelque chose de plus précis, tu peux regarder du côté des Stopwatch

Amicalement, SharpMao
0
Rejoignez-nous