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

Bibliothèques C++ Discussion :

Utilisation de Timer


Sujet :

Bibliothèques C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Utilisation de Timer
    Bonjour,
    Je souhaite utiliser à la manière du .Net des timers qui déclencherons un évènement après N millisecondes. Mais je ne peux pas utiliser Visual-studio et n'arrive pas a trouver une bibliothèque équivalente.
    Auriez vous des idées ?

    Merci d'avance pour votre aide.

    Simon

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Cela dépend du système que vous utilisez, mais si c'est sous Windows, il y a des Timer dans la WinAPI -> http://msdn.microsoft.com/en-us/libr...creating_timer
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    Bonjour,

    je vais peut-être dire une bêtise, mais il n'y a pas une librairie "chrono" dans le nouveau standard ? Elle n'est pas encore utilisable c'est ça ?
    Nullius in verba

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 704
    Points
    2 704
    Par défaut
    Sinon, il y a Boost.Chrono.

  5. #5
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par Kaamui Voir le message
    Bonjour,

    je vais peut-être dire une bêtise, mais il n'y a pas une librairie "chrono" dans le nouveau standard ? Elle n'est pas encore utilisable c'est ça ?
    Elle est utilisable si tu utilises un compilateur qui la fourni.

    Sinon tu peux utiliser boost::chrono (mais je crois qu'elle va évoluer dans les versions a venir).



    Sinon, chrono est chouette mais n'est pas suffisant pour faire office de timer. Généralement un timer est surtout une sorte d'evenement plus ou moins asynchrone, or ici on ne peut que mesurer le temps passer avec chrono. Autrement dit, chrono permet de facilement implémenter un système de timer spécifique, mais il ne propose pas d'implémentation de timer.

    Il me semble qu'il y a boost.timer qui en propose mais qui est très vieux et en cours de réimplémentation parceque pas très bon niveau perfs (ou quelque chose dans le genre).

    Accessoirement, boost::asio offre aussi de quoi faire des timer mais c'est peut être overkill.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Elle est utilisable si tu utilises un compilateur qui la fourni.

    Sinon, chrono est chouette mais n'est pas suffisant pour faire office de timer. Généralement un timer est surtout une sorte d'evenement plus ou moins asynchrone, or ici on ne peut que mesurer le temps passer avec chrono. Autrement dit, chrono permet de facilement implémenter un système de timer spécifique, mais il ne propose pas d'implémentation de timer.
    Je ne comprends pas.. tu veux dire qu'elle ne propose pas de timer et qu'on est obligé de l'implémenter soi-même ou qu'on ne peut pas faire de timer avec ?

    Plus ou moins asynchrone ? Tu veux dire que tu voudrais pouvoir avoir un timer en tache de fond (en parallèle ?) ?
    Nullius in verba

  7. #7
    Membre éclairé
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Points : 879
    Points
    879
    Par défaut
    Je pense que Klaim parlait d'un timer qui active une fonction en parallèle à son expiration.

    Ca reste émulable avec quelque chose comme (non testé) :
    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
    void foo() { std::cout << "Hello, Timer World !" << std::endl; }
     
    struct Timer {
       std::chrono::steady_clock::duration time;
       void operator() () {
          auto start = std::chrono::steady_clock::now();
          while (std::chrono::steady_clock::now() < start + time) ; // Peut etre accelere avec un sleep dans la boucle -- ou bien si chrono propose un wait ?
          return foo();
       }
    };
     
    int main() {
       std::thread th(Timer{std::chrono::steady_clock::duration(100)});
       th.join();
    }

  8. #8
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Ah oui désolé, le terme timer peu prendre des sens différents selon les frameworks...

Discussions similaires

  1. utilisation des timers
    Par iwio dans le forum Allegro
    Réponses: 1
    Dernier message: 25/06/2006, 23h55
  2. Utilisation de Timer dans Python
    Par aliassaf dans le forum Général Python
    Réponses: 5
    Dernier message: 17/06/2006, 19h06
  3. [C#.net] utiliser un timer
    Par Mandalar dans le forum DirectX
    Réponses: 4
    Dernier message: 26/01/2006, 22h17
  4. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 14h07
  5. Utilisation de Timer
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 07/07/2004, 23h27

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