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

C++ Discussion :

Timer


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    F�vrier 2005
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3
    Par d�faut Timer
    Bonjour,
    Je voudrais r�peter une action toutes les 3 ms! (avec une boucle for)
    y a t il une classe timer en C++ pr�d�finie qui permet de le faire?
    PS: g cherch� sur msdn mais il m'a sorti que le code C++ pour .NET
    Merci pour votre aide

  2. #2
    tut
    tut est d�connect�
    Membre �clair�
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par d�faut
    3 ms, �a va �tre chaud sous Windows.
    Tu devrais poster dans le forum Visual C++.
    Ce que tu peux faire : essayer d'utiliser les fonctions SetTimer(), ou faire une boucle et utiliser la fonction GetTickCount() pour mesurer le temps.

  3. #3
    Membre chevronn�
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Par d�faut Re: Timer
    Citation Envoy� par joyfullfr
    Bonjour,
    Je voudrais r�peter une action toutes les 3 ms! (avec une boucle for)
    y a t il une classe timer en C++ pr�d�finie qui permet de le faire?
    PS: g cherch� sur msdn mais il m'a sorti que le code C++ pour .NET
    Merci pour votre aide
    Si tu es sous windows et pour une telle pr�cision, GetTickCount ne sert � rien . Il faut utiliser le couple QueryPerformanceFrequency/QueryPerformanceCounter.
    Tu peux aussi utiliser la fonction Sleep mais c'est pour attendre un certain temps. (Sleep(3) dans ton cas).
    L'avantage d'un Sleep par rapport � une boucle sur QueryPerformanceCounter, c'est que �� ne bouffe pas de temps CPU pour rien.

  4. #4
    Candidat au Club
    Inscrit en
    F�vrier 2005
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3
    Par d�faut sleep
    J'ai pens� au Sleep que j'ai mis juste apr�s mes deux actions que je veux r�peter ttes les 3 ms mais celui-ci ne risque t'il pas de me bloquer le thread d'ex�cution des actions lanc�s auparavant durant ces 3 ms??::
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for (int i=0;i++;10)
    	{
     
    		m_tunnelingPlugin->KillTunnelingPlugin();
    		m_tunnelingPlugin->BuildTunnelingPlugin();
    		Sleep(3000);
     
    	}

  5. #5
    Membre confirm� Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par d�faut Timer
    Bonjour,
    Dans ton cas, le mieux c'est de tout englober dans un thread.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ThreadFunc(...)
    {
       while(CONDITION)
       {
            m_tunnelingPlugin->KillTunnelingPlugin(); 
            m_tunnelingPlugin->BuildTunnelingPlugin(); 
            Sleep(3000); 
        }
    }
    En faisant ceci, tu ne risque pas de bloquer ton programme Principal.

    En esp�rant que �a t'aide.

    Jag

  6. #6
    Candidat au Club
    Inscrit en
    F�vrier 2005
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2005
    Messages : 3
    Par d�faut Thread incluant timer
    Ok! Merci pour toutes vos r�ponses!!!!

  7. #7
    mat.M
    Invit�(e)
    Par d�faut
    >>PS: g cherch� sur msdn mais il m'a sorti que le code C++ pour .NET

    Si l'OS est Windows c'est plut�t une question de d�veloppement Windows sp�cifique et non C++ en g�n�ral.
    Tu peux effectivement utiliser SetTimer /KillTimer ( rechercher dans les API de base Windows et non pour NET ).
    Tut, SetTImer � 3000 Ms �a peut parfaitement fonctionner...

  8. #8
    Membre confirm�
    Inscrit en
    Juin 2002
    Messages
    37
    D�tails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 37
    Par d�faut
    sleep(3) va bloquer l'ex�cution pendant 3 ms mais si le code � ex�cuter dans la boucle prend par exemple 2 ms alors l'action que tu veux accomplir toutes les 3ms va en r�alit� s'eefectuer toutes les 5ms... il faudrait chronom�trer le temps mis pour ex�cuter le reste du code pour pouvoir r�ajuster le param�tre de la fonction sleep. Pour cela tu peux utiliser le couple QueryPerformanceFrequency/QueryPerformanceCounter (si tu es sous Windows, bein s�r)

Discussions similaires

  1. Comment faire un Timer de fonction PORTABLE ?
    Par dieuP1guin dans le forum C
    R�ponses: 3
    Dernier message: 04/07/2003, 10h44
  2. [horloge] conflit caract�re / timer
    Par JeanJean dans le forum C
    R�ponses: 10
    Dernier message: 09/05/2003, 23h47
  3. [] [R�seau] Anti-timer, anti-idle
    Par clonevince dans le forum VB 6 et ant�rieur
    R�ponses: 4
    Dernier message: 15/01/2003, 22h19
  4. Timer de pr�cision
    Par guigui dans le forum MFC
    R�ponses: 1
    Dernier message: 04/12/2002, 15h21
  5. Timer en �secondes
    Par Dagobert dans le forum x86 16-bits
    R�ponses: 3
    Dernier message: 25/11/2002, 00h59

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