DateTime et millisecondes

Résolu
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009 - 1 août 2006 à 13:22
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009 - 1 août 2006 à 16:31
Bonjour j'ai une question que j'arrive pas à résoudre. Pourquoi lorsque je fais


for(int i =0; i<= 100; i++)

    Console.Write("millisecondes : {0}\n", DateTiime.Now.Millisecond);


Il ne change que toute les 10-15 lignes (suivant les processeurs à mon avis)?

On voit clairement que chaque phase de l'execution prend au moins 1 ms
vu qu'il passe de bloc en bloc. Alors pourquoi ne raffraichit-il pas la
donnée à chaque ligne?

Par avance merci

6 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
1 août 2006 à 16:06
Salut, pour avoir des valeurs bien plus précises utilise la classe StopWatch. Ton instruction prend biens moins d'un seconde mais par moment le processeur est occupé ailleurs, peut être le garbage collector.
3
gcorbineau Messages postés 143 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 octobre 2006
1 août 2006 à 13:36
je ne comprends pas ce que tu dis:

"On voit clairement que chaque phase de l'execution prend au moins 1 ms vu qu'il passe de bloc en bloc."

Ta ligne :
Console.Write("millisecondes : {0}\n", DateTiime.Now.Millisecond);

est executer en d'1ms(et heuresement) c'est pour cette raison quelle ne change pas à chaque fois.
0
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
1 août 2006 à 13:45
    lol c'est sur heureusement qu'il execute en moins d'une millisecondes cette instruction :p
Si tu veux vraiment afficher sur chaques ligne le temps ... je te conseille d'utiliser un timer et a chaque interval d'1ms => Console.Write("millisecondes : {0}\n", DateTiime.Now.Millisecond);
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
1 août 2006 à 14:10
Bon je vais sortir ce que la console me renvoie :


ms : 218

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 328

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338

ms : 338


Là j'ai fait qu'une boucle jusque 40, on voit qu'il donne le meme
résultat et puis op il passe de 10 et continu... comme si le code resté
en mémoire et qu'il le reprennait et quand il se rendait compte que la
valeur avait changé, il la changé. Je trouve ça très troublant.
J'aurais plus aimé connaitre le fond du problème, plutôt que me
résoudre à penser que c'est comme ça et puis c'est tout.

Amicalement TMCUH
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
1 août 2006 à 16:13
Ahh oui le fameux gabarge collector, merci de me mettre sur la
voie. Car ce qui m'étonnait ,c'est que même avec un Thread.Sleep(1)
entre chaque "écriture", le temps ne changé par autant.

Mais bon but n'est pas de généré quelque chose toute les milliseconde,
mais plutot que lorsque j'appel une fonction qui elle génère quelque
chose en fonction de cette milliseconde, que la valeur soit bien
unique.

Car pour le moment pour généré mon numéro unique je suis obligé de
faire un sleep de 10 ms... pas 5 pas 9 ... 10. Et j'arrive pas à
comprendre pour l'unicité des valeurs ne se fait que toute les 10 ms.


Mais merci pour ce renseignement je vais explorer cette voie
Amicalement TMCUH
0
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
1 août 2006 à 16:31
Je viens de tester effectivement la class StopWatch répond nettement mieux aux attentes. Nikel merci

Amicalement TMCUH
0
Rejoignez-nous