Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Discussion: Utilisation de Timer

  1. #1
    Invité de passage
    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 : 0
    Points
    0

    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 Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    15 646
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 15 646
    Points : 72 627
    Points
    72 627

    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
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

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

  3. #3
    Membre émérite
    Homme Profil pro Clément
    ingénieur d'étude et de développement
    Inscrit en
    novembre 2011
    Messages
    572
    Détails du profil
    Informations personnelles :
    Nom : Homme Clément
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : ingénieur d'étude et de développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 572
    Points : 800
    Points
    800

    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 ?

  4. #4
    Membre Expert
    Inscrit en
    novembre 2004
    Messages
    2 554
    Détails du profil
    Informations forums :
    Inscription : novembre 2004
    Messages : 2 554
    Points : 1 984
    Points
    1 984

    Par défaut

    Sinon, il y a Boost.Chrono.
    VDS "The C++ Standard Library" (Josuttis) -> 20 €

  5. #5
    Expert Confirmé
    Avatar de Klaim
    Homme Profil pro Joel Lamotte
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Nom : Homme Joel Lamotte
    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 718
    Points : 3 026
    Points
    3 026

    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 émérite
    Homme Profil pro Clément
    ingénieur d'étude et de développement
    Inscrit en
    novembre 2011
    Messages
    572
    Détails du profil
    Informations personnelles :
    Nom : Homme Clément
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : ingénieur d'étude et de développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 572
    Points : 800
    Points
    800

    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 ?) ?

  7. #7
    Membre émérite

    Homme Profil pro Léo Gaspard
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    442
    Détails du profil
    Informations personnelles :
    Nom : Homme Léo Gaspard
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 442
    Points : 817
    Points
    817

    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 :
    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
    Expert Confirmé
    Avatar de Klaim
    Homme Profil pro Joel Lamotte
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Nom : Homme Joel Lamotte
    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 718
    Points : 3 026
    Points
    3 026

    Par défaut

    Ah oui désolé, le terme timer peu prendre des sens différents selon les frameworks...

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •