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 précis en VB


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut timer précis en VB
    Bonjour,

    Le timer de visual basic est apparemment peu précis ( résolution réelle ~20ms même si on peut spécifier une valeur en ms pour la propriété 'interval' )

    Pour creer un timer plus précis on peut utiliser la fonction QueryPerformanceCounter et boucler en permanence en testant la valeur retournée par cette fonction ( en insérant un DoEvents dans la boucle pour ne pas bloquer les autres tâches )

    Cependant cette solution accapare beaucoup le processeur et n'assure pas une périodicité précise car pendant le DoEvents, on peut commuter sur une tâche de durée trop longue / période.

    De plus la mise en parallèle de plusieurs de ces boucles avec differentes périodes devient délicate

    Existe t'il un moyen d'utiliser en VB de véritables timers (hard?), précis, qui génèrent une interruption de haute priorité au moment voulu sans accaparer le processeur le reste du temps?

    Merci pour toute aide.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    les timers qu'on posent sont des system.windows.forms.timer
    il existe aussi les system.threading.timer (leur evenement renvoi sur un autre thread que le principal). ils sont peut etre plus mieux

    sinon ce qui se fait parfois c'est démarrer un thread sur un sub en while true
    et thread.sleep()
    si le traitement dure plusieurs ms on peut alors utiliser un stopwatch pour calculer le temps du traitement et modifier le sleep pour qu'il dur le reste du temps
    je privilégierais cette solution au timer, au moins y a pas d'évènement (qui se retrouve sur une pile ...). chaque thread génère un thread au niveau de l'os, on peut aussi modifier la priorité du thread
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Merci pour ta réponse,

    En fait je programmais jusqu'à present en VB6 et débute à peine en .NET avec VB2005 express.

    Ta méthode exige de passer en .NET ? Est ce que l'utilisation de thread.sleep permet de boucler precisement à des périodes ~ms ou plus rapides ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    tu es sur un forum .net, je répond en .net
    vb6 et .net sont totalement différents (pas de threads deja en vb6)

    thread.sleep permet de dire à thread d'attendre x millisecondes avant de passer à l'instruction suivante, sans utiliser de ressources processeur
    donc ca permet d'etre très précis
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Timer très précis
    Par thegitch dans le forum C#
    Réponses: 8
    Dernier message: 09/12/2008, 14h37
  2. [C++] Timer précis
    Par CrazySeb dans le forum C++
    Réponses: 1
    Dernier message: 28/02/2007, 14h50
  3. Un timer plus précis que SDL_GetTicks()
    Par goof_22 dans le forum SDL
    Réponses: 1
    Dernier message: 29/10/2006, 19h34
  4. [Timer]Timer pas très précis
    Par harold63 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 25/07/2005, 08h36
  5. [débutant] Timer inférieur à 1ms ? Timer + précis ?
    Par hepar dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/02/2004, 18h42

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