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

MFC Discussion :

Traitement periodqiue chaque X secondes!


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut Traitement periodqiue chaque X secondes!
    Bonjour,

    j'ai un traitement a faire chaque X secondes .....comment ecrire ma boucle while en c++ afin de supporter ce critere?

    while( ... )
    {

    // mon traitement ;

    }

    merci

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Pourquoi ne crées-tu pas un timer ?

  3. #3
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    comment le faire ? sachant que je dois passer la duree en prametre

  4. #4
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    Montre moi comment creer un timer pour que je puisse l'alimenter avec une valeur X donnée et merci

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Utilise SetTimer, et tu as aussi le droit de faire une recherche sur le forum, le sujet a été maintes fois traité

  6. #6
    r0d
    r0d est actuellement connecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Ca dépends:
    1/ Sur quel type de projet travailles-tu? (dialog based, SDI, MDI, console...)
    2/ Quelle est la précision dont tu as besoin?

  7. #7
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    C'est un executable Win32 consiole simple que ej susi entrain de faire ...tout ce qu eje veux faire c'est que ce timer controle le traitement toutes les X secondes ...je ne veux pas utiliser Sleep !! voilà

  8. #8
    r0d
    r0d est actuellement connecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Et bien dans ce cas, je n'ai rien à rajouter à
    Citation Envoyé par nico-pyright(c)
    Utilise SetTimer, et tu as aussi le droit de faire une recherche sur le forum, le sujet a été maintes fois traité

  9. #9
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    C'est quoi que tu veux ontrôler parce qu'on parle de timer mais c'est pas dis que se soit la solution( pour info pour créer un timer sous Windows fais une recherche sur la fonction CreateTimer)

  10. #10
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    c'est a dire? pas de solution!!!

  11. #11
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    qu'est-ce qui pose problème ?

    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
    16
    VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
    {
    	OutputDebugString("1 seconde\n"); // appelé toutes les secondes
    }
     
    int main(int argc, char* argv[])
    {
    	SetTimer(NULL, 1, 1000, TimerProc);
    	MSG msg;
        while (GetMessage (&msg, NULL, 0, 0))
        {
    		TranslateMessage (&msg) ;
    		DispatchMessage (&msg) ;
    	}
    	return msg.wParam ;
    }

  12. #12
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    Merci pour cet effort....j'apprécie..mais y aurait il moyen plus simple de prendre un intervalle de temps dans une boucle while qui fait un certain traitement !!!!

    le raisonnement est simple : tant que X secondes sont ecoulés alors on fait le traitement...et ainsi de suite ....

  13. #13
    r0d
    r0d est actuellement connecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Sleep ou Wait. :

  14. #14
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    ou alors un calcul avec différence de temps, mais le problème, c'est que ca va utiliser 100% du CPU
    et c'est dommage.
    Les timers sont fait pour ca

  15. #15
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    bon....et comment donc l'injecter dans uen boucle while!! est ce possible ou pas !! voilà ma question...

    Sinon pour l'exemple du timer deja proposé... comment encapsuler mon traitement pour que ca soit fait selon les intervalles propre au timer !!

    merci

  16. #16
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il y en a une de boucle while dans l'exemple.

    Que veux-tu faire exactement ?

    Dans mon exemple, j'affiche une phrase toutes les secondes. (Ok, je gère pas la fin et la sortie de boucle, mais c'est faisable ...)

  17. #17
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    Je vise une application consile Win 32 en c++ prenant de la ligne de commande les argumenst qu'il faut .si je prend ton exemple comment tu fait si jamais ke et passe comme arguments :

    5000 Test

    ou 5000 est la periode d'affichage
    Test : la phrase a afficher !

    ca m'aidera

    merci

  18. #18
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Citation Envoyé par jlassira
    Je vise une application consile Win 32 en c++ prenant de la ligne de commande les argumenst qu'il faut .si je prend ton exemple comment tu fait si jamais ke et passe comme arguments :
    la franchement, j'ai rien compris.

    Tu veux que je t'explique comment on récupère la ligne de commande ?

    Si tu veux une période de 5000 ms, il suffit de changer cette valeur dans SetTimer. Afficher dans la console ? avec printf ou cout par exemple

    NB : n'oublie pas qu'il faudra gerer une condition de sortie en détruisant le timer (avec KillTimer)

  19. #19
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    ma question de depart etait pourtant simple :

    j'ai un traitement a faire chaque X secondes .....comment ecrire ma boucle while en c++ afin de supporter ce critere?

    while( ... )
    {

    // mon traitement ;

    }


    donc mon soucis ce n'est pas la lecture des parametres !! mais comment faire un traitement cyclique toutes les x secondes avec une boucle while? est ce possible ou pas tout d'abord sinon comment adapter mon bloc traitement afin qu'il s'exeute chaque X secondes !! ( exp: affichage d'un message sur l'ecran, lecture d'un fichier et copie dans un autre ...envoie d'un mail...)

    et encore merci

  20. #20
    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
    tu as toutes les cartes en main, les messages précédents t'expliquent comment faire...
    Pour résumé, tu as deux solutions :
    - soit tu gardes ta fameuse boucle while en y incorporant un ::Sleep() pour faire une pause à l'intérieur,
    - soit tu implémentes un timer Win32 avec ::CreateTimer() et ::KillTimer() et dans la fonction de callback du timer tu mets le corps de ta boucle while() qui n'aura bien sûr plus lieu d'être.

    Y'a rien de sorcier, ou alors précise ton problème.

Discussions similaires

  1. lecture d'un fichier chaque x seconde
    Par Echap dans le forum Débuter
    Réponses: 6
    Dernier message: 03/12/2010, 18h38
  2. rafraichir une webview chaque n secondes
    Par perloutta dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 18/05/2010, 15h33
  3. Réponses: 6
    Dernier message: 27/09/2009, 22h43
  4. Réponses: 1
    Dernier message: 07/10/2008, 06h18
  5. Réponses: 1
    Dernier message: 08/06/2007, 12h11

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