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 :

Comment ne pas saturer l'ordi avec une boucle ?


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Comment ne pas saturer l'ordi avec une boucle ?
    Bonjour à tous !
    alors voila, je voudrais faire un petit code qui ( a titre d'exemple ) affiche une boite de dialogue toutes les heures. Voila comment je m'y prends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    TCHAR infoBuf[256];
        SYSTEMTIME CurrentTime;
     
        while(1)
        {
            GetLocalTime(&CurrentTime);
     
            if(CurrentTime.wMinute == 00 && CurrentTime.wSecond == 00)
            {
                MessageBox(0, "Message", "Titre", MB_TASKMODAL);
            }
     
            else continue;
        }
    Mais cette méthode sature l'ordinateur ! N'y a-til pas un meilleur moyen, moins bourrin que cette boucle infinie ? Je note que je me fou completement d'utiliser une boucle ou pas. Tout ce que je souhaite c'est d'afficher mon message toutes les heures, donc c'est pas grave du tout si on utilise une autre m"thode que la boucle.
    Merci !

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par jenez
    alors voila, je voudrais faire un petit code qui ( a titre d'exemple ) affiche une boite de dialogue toutes les heures.
    Il ne faut effectivement pas faire de boucle blanche. C'est contre le principe de la programmation par évènements. Sous Windows il faut utiliser un timer et le message WM_TIMER. Détails sur le forum concerné.

    http://www.developpez.net/forums/forumdisplay.php?f=16

  3. #3
    Membre habitué Avatar de petit arbre
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 143
    Points : 153
    Points
    153
    Par défaut ouarfffffffffffffff'''''''''''
    Je vois que le choses n'ont guère évoluées en vingt ans !!!

    A l'époque (1980) je m'amusais à faire une boucle sans fin en Cobol sur un (je sais plus quoi de Bull ??)

    ça bouffait tout le temps machine et les autres connectés n'arrivaient plus à rien!!! ceci dit, on ne parlait pas de multitâche préemptif à l'époque ...

    En plus il fallait se taper Abba à la radio, quelle époque !!!

  4. #4
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    ... c'est sûr qu'une attente active... que ce soit en programmation évenementielle ou non, c'est rarement une bonne idée !

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par petit arbre
    En plus il fallait se taper Abba à la radio, quelle époque !!!
    Ca, c'était le pire. Non, le pire, c'est que ça revient ! Maudits ados...

    Mais où j'ai mis mon jean à pattes d'ef et mes chemises à fleurs ? Arg, je ne rentre plus dedans !

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    ouais, très touchant la discussions club dans anciens ^^
    enfin, merci pour votre aide, et je vais me renseinger sur cet énigmatique timer.
    J'ai fais une recherche, apparament le timer c'est de l'API Windows, avec fenêtre et compagnie. Or ce n'est pas vraiment ce que je veux faire. Est-on obligé de faire un programme en fenêtre pour utiliser les timers ?

  7. #7
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par jenez
    ouais, très touchant la discussions club dans anciens ^^
    enfin, merci pour votre aide, et je vais me renseinger sur cet énigmatique timer.
    J'ai fais une recherche, apparament le timer c'est de l'API Windows, avec fenêtre et compagnie. Or ce n'est pas vraiment ce que je veux faire. Est-on obligé de faire un programme en fenêtre pour utiliser les timers ?
    Un petit coup de sleep dans ta boucle et ça devrait être bon...

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par zooro
    Un petit coup de sleep dans ta boucle et ça devrait être bon...
    Non. Pour Windows, c'est Sleep().

    Excellent ton avatar, tu l'as en grand quelque part ?

  9. #9
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Non. Pour Windows, c'est Sleep().
    Ah, je ne savais pas. Je programme sous Linux d'habitude.

    Citation Envoyé par Emmanuel Delahaye
    Excellent ton avatar, tu l'as en grand quelque part ?
    Oui : Nom : evolution homme.jpg
Affichages : 102
Taille : 131,8 Ko

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par zooro
    Nom : evolution homme.jpg
Affichages : 102
Taille : 131,8 Ko
    Magnifique. Merci.

Discussions similaires

  1. Comment créer un array à deux dimensions avec une boucle
    Par m4riachi dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/05/2015, 16h17
  2. Réponses: 6
    Dernier message: 01/06/2007, 13h19
  3. Comment ne pas saturer l'ordi avec une boucle ?
    Par jenez dans le forum Windows
    Réponses: 5
    Dernier message: 30/09/2006, 23h01
  4. Comment parcourir un fichier texte avec une boucle ?
    Par kikica dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 17h13
  5. Comment initialiser une liste de composants avec une boucle ?
    Par EricSid dans le forum Composants VCL
    Réponses: 5
    Dernier message: 06/04/2005, 18h46

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