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 :

[Parallèle] Timer / évenements


Sujet :

C++

  1. #1
    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 705
    Points
    2 705
    Par défaut [Parallèle] Timer / évenements
    Bonjour,

    Une API m'envoie des événements à chaque fois qu'est changée la valeur de certains contrôles. Quand je manipule un curseur, je reçois ainsi une flopée d'événement.

    J'aimerais que l'événement en soit pris un compte qu'après un certain délai (une fraction de seconde) pour éviter des traitements inutiles.

    Comment feriez-vous ça ?

    Je précise que c'est pour Windows et Linux.

    Merci.

  2. #2
    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
    Si tu as un "boucle principale", il te suffit :

    1) soit de ne regarder si tu as un traitement à effectuer que tous les temps t (qui serait par exemple d'une demi seconde) : de cette manière sais que le temps entre deux traitements est toujours espacé, mais il se peut qu'un traitement se lance immédiatement si le changement est effectué pile avant que le temps t soit écoulé;

    2) soit tu as un compteur de temps qui n'est incrémenté uniquement si il y a eu une modification, qui est remi à 0 à chaque modification et qui lorsqu'il arrive a un temps t, est desactivé jusqu'a la prochaine modification, après que tu ais effectué les traitements : de cette manière tu sais que le traitement se lancera toujours après un temps t après la dernière modification;

    Sinon,

    3) tu peux utiliser un timer de lib (parmis celles disponibles pour tes plateformes) que tu reset a chaque modification et qui te notifiera comme pour 2) quand effectuer les traitements.

    Personnellement j'utilise une petite lib perso où j'ai une classe Timer qui sert à ce genre de choses, et qui permet les 3 solutions.

  3. #3
    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 705
    Points
    2 705
    Par défaut
    Je suis parti sur la solution 3. En utilisant ASIO de Boost : http://www.boost.org/doc/libs/1_35_0...ine_timer.html
    Je ne sais pas si c'est la meilleure solution...

Discussions similaires

  1. tâches en parallèle [Timer]
    Par zakarota dans le forum Général Java
    Réponses: 6
    Dernier message: 20/07/2011, 12h09
  2. Executer des tâches en parallèle [Timer]
    Par zakarota dans le forum Général Java
    Réponses: 1
    Dernier message: 06/07/2011, 14h01
  3. Réponses: 9
    Dernier message: 09/10/2009, 12h58
  4. Timer sur évenement
    Par Isythiel dans le forum C#
    Réponses: 4
    Dernier message: 12/05/2009, 14h59
  5. Réponses: 2
    Dernier message: 22/07/2005, 22h19

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