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

VB.NET Discussion :

Timer et précision


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 28
    Points
    28
    Par défaut Timer et précision
    Bonsoir j'ai développez un logiciel dans lequel je souhaite faire apparaître une horloge pour cela j'utilise la classe Timer afin de mettre a jour l'horloge toute les secondes, le souci c'est que l'horloge fini par perdre assez rapidement des secondes ou alors même au lancement j'ai des des millisecondes de différence comment faire pour avoir une bonne précision ? voici un peu de code :

    initialisation de l'heure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Private Sub TimeInit()
            Me.HOUR =  Format(Now, "HH")
            Me.MIN =  Format(Now, "mm")
            Me.SEC = Format(Now, "ss")
        End Sub

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            LblCurrentTime.Text = DateTime.Now.ToString("HH:mm:ss")
        End Sub
    http://imabox.fr/a3/142706646VNHd6L46.png

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    merci pour ta réponse mais ça c'est déjà ce que je fait néanmoins j'ai toujours des problèmes de précision

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    As-tu seulement essayés d'autres programmes du type schedduler ou Clock pour voir si le problème est persistant malgré le programme que tu exécutes sur ton PC (avec le cadencement de ton horloge système) ????

    Et par rapport à quoi te bases-tu pour te rendre compte que ton horloge implémentée avec un timer prends du retard ?


    PS : un peu plus de code permettrait de mieux appréhender ton projet ...... car comme ca on ne voit ni Timer ni event Tick ni affectation de tes variables et à quel moment.......etc....

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Voila le 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
    20
    21
    22
    23
    24
     
         Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Me.TimeRecalculate()
            Me.TimeDisplay()
        End Sub
     
        Private Sub TimeDisplay()
            Me.mins.Text = Me.MIN.ToString("D2")
            Me.secs.Text = Me.SEC.ToString("D2")
        End Sub
     
       Private Sub TimeRecalculate()
           If Me.SEC > 0 Then
               Me.SEC -= 1
           Else
               Me.SEC = 59
           End If
           If Me.SEC = 0 Then
               Me.MIN -= 1
           End If
           If Me.MIN < 0 Then
               Me.MIN = 59
           End If
      End Sub

  6. #6
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Bonjour,

    Le Timer du namespace Windows.Form est monothread, je pense que vous devez perdre de la précision à cause de l'incrémentation des secondes et minutes.

    Pourquoi le pas prendre la solution de wallace1 avec DateTime.Now ?

    Etanne
    "Phylactère temporaire" = tooltips

    Votre problème a été résolu ? Alors utilisez sur et

  7. #7
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Etanne Voir le message
    Bonjour,

    Pourquoi le pas prendre la solution de wallace1 avec DateTime.Now ?
    Parce que comme il l a dit plus haut il a déjà fait ce que je lui ai proposé comme solution.....
    Mais il n'en est absolument rien comme nous pouvons tous le constater excepté OP....lol

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    oui effectivement j'avais déjà essayé ta solution mais je n'avais pas baissé l'intervalle du timer donc ça ne fonctionné pas en baissant cela fonctionne je mais donc en résolu merci @Etanne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Timer haute précision
    Par chris069 dans le forum C++
    Réponses: 3
    Dernier message: 29/04/2009, 15h53
  2. Problème de précision avec un Timer
    Par cs_ntd dans le forum C#
    Réponses: 7
    Dernier message: 29/06/2008, 23h51
  3. Sleep() et Timer grande précision
    Par jacklafrip dans le forum MFC
    Réponses: 6
    Dernier message: 13/08/2007, 12h29
  4. [C++ Builder 6] Timer de précision pour chronomètre
    Par doudoustephane dans le forum C++Builder
    Réponses: 9
    Dernier message: 27/09/2005, 10h45
  5. Timer de précision
    Par guigui dans le forum MFC
    Réponses: 1
    Dernier message: 04/12/2002, 15h21

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