Nichlas
Messages postés10Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention10 décembre 2006
-
10 déc. 2006 à 13:06
robotix76
Messages postés1Date d'inscriptionjeudi 25 septembre 2008StatutMembreDernière intervention25 septembre 2008
-
25 sept. 2008 à 13:31
Bonjour,
j'ai réalisé un chronomètre, mais je suis confronté à un problème. Selon la machine où je lance le chronomètre, les secondes avancent plus ou moins vites...
Sur le PC où j'ai créé le chronomètre, 15s valent 15s réelles, mais sur un autre PC le chronomètre affiche 20s alors que seulement 15s se sont écoulées.
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 10 déc. 2006 à 13:31
Salut, si tu utilises le contrôle Timer, quel est la valeur de l'intervalle et quel est le code que tu fais exécuter dans l'évènement MyTimer_Timer ?
Si on se réfère à la MSDN de vb6, il peut y avoir des différences suivant les machines, voir ci-dessous un extrait :
Lorsque vous programmez un contrôle Timer, vous devez prendre en compte certaines limites applicables à la propriété Interval :
<li>Si votre application ou une autre impose des demandes excessives au système (boucles longues, calculs intensifs, accès aux lecteurs, aux réseaux ou aux ports de communication), il se peut que votre application ne reçoive pas les événements de la minuterie aussi souvent qu'il est spécifié dans la propriété Interval.
</li><li>L'intervalle peut être compris entre 0 et 64 767 inclus, ce qui signifie que même l'intervalle le plus long sera seulement de l'ordre d'une minute (64,8 secondes environ).
</li><li>Il n'est pas garanti que l'intervalle ait toujours exactement la même durée. Pour assurer la précision, la minuterie doit vérifier l'horloge système chaque fois que c'est nécessaire plutôt que d'essayer de faire le suivi en interne du temps accumulé.
</li><li>Le système génère 18 tops d'horloge par seconde. Ainsi, bien que la propriété Interval soit mesurée en millisecondes, la précision véritable d'un intervalle n'excède pas un 1/18e de seconde. </li>
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 10 déc. 2006 à 13:34
Oui, Timer utilise une class produisant 18 tops par seconde (donc la précision est d' 1/18eme de seconde)
Donc c'est pas précis à 100% car le Timer vérifie l'horloge système de ton OS chaque fois que c'est nécessaire (et donc le temps de vérification lui-même prends du temps... mais qques milisecondes par-ci par-là, cela produit un écart)
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 10 déc. 2006 à 13:42
Le fonctionnement du controle Timer est ainsi (selon mes propres mesures), l'interval indiqué n'est pas le temps qui sépare 2 lancement de la évènement timer. Mais c'est bien le temps qui sépare la fin de l'execution de l'évènement avec lme début du suivant.
Ainsi avec un interval de 100ms et une procédure qui met 50ms à s'executer completement, la procédure sera executer approximativement toutes les 150ms.
De plus le timer n'est pas du tout fiable en durée, interval est donné à +/- plusieurs % (de 2 à 10 suivant les machines, prog, charges cpu, ... selon mes mesures).
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #