jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 6 juil. 2008 à 00:09
Boinjour,
et le levier pour la soulever, cette colline (je dirais même ce petit talus) est minuscule !
Mécanisme :
1) déterminer l'heure finale (heure actuelle + durée déterminée)
2) à chaque "tick" du Timer calculer l'écart entre la nouvelle heure actuelle et l'heure finale et ... l'afficher ...
Pas une ligne de code ici car : d'une très grande simplicité ...
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 6 juil. 2008 à 07:22
Non ce que je disais c'est qu'il faudrait utiliser le signe > ou >= au lieu de =
If
Now.ToShortTimeString > heurfin Then
Car il est possible que ta boucle loupe l'heure exact si le CPU est chargé par d'autres processus au même moment. L'utilisation du signe > évite tout risque de "loupage".
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008 6 juil. 2008 à 23:57
Et un truc dans ce genre:
Dim endwait1 As Double
endwait1 = Environment.TickCount + ms_to_wait
While Environment.TickCount < endwait1
Label.Text = Math.Round((endwait1 - Environment.TickCount) / 1000, 3)
End While
Vous pensez que ça pourrait surcharger le processeur ?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 7 juil. 2008 à 17:57
Ca ressemble à ma solution, sauf que toi tu utilise un 2ème timer pour arreter le 1er. Ma solution est plus simple je trouve, et utilise moins de resources.
Et mon Now - endTime te permet d'afficher le temps restant en h:m:s, alors que ton (Fin - Environment.TickCount()) / 1000 n'affiche qu'une seule unité.
Tu sais qu'un un tick vaut 100 nanoseconde? Donc ton ticks/1000 affiche des 100 microsecondes, c'est le but?