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++Builder Discussion :

Une question à propos des thread


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 169
    Points : 80
    Points
    80
    Par défaut Une question à propos des thread
    Bonjour,

    je développe une application, où il y a une méthode qui est très longues(récup info d'une BDD à distance).
    Donc à l'appel de cette méthode et durant son exécution, mon application se bloque.
    J'ai donc pensé à utiliser un thread.

    [codevoid __fastcall ClasseThread::Execute()
    {
    //---- Placer le code du thread ici ----
    frmGestion->ClassesSuite(frm->Gestion->tabUtilisateur[Tree->Selected->Index].getNom(),frm->Gestion->Tree->Selected->Index);
    }[/code]

    Il y a donc ici l'appel de ma méthode qui se trouve dans mon formulaire principal. Cela est-il possible?

  2. #2
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    Bonjour.

    Afin de débloquer ton application, utilise plutôt Application->ProcessMessages dans la boucle de ta fonction servant au chargement des données.
    Un historique local pour Visual Studio 2005 et 2008 :
    http://www.codeplex.com/VLH2005

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 169
    Points : 80
    Points
    80
    Par défaut
    Ok!

    Pourrait tu m'expliquer comment l'utiliser plus concrètement (code).
    Est ce que grace à ça mon l'état de mon application ne sera plus en "Not Responding"?

    Merci pour ton aide.

  4. #4
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    A chaque fois que le programme rencontre Application->ProcessMessages, windows traite les messages de ton application (donc çà ne freeze pas).

    Cas où çà marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while( ... )
    {
             for( ... )
            {
                     // chargement de tes données, une par une
                    Application->ProcessMessages(); // empèche le freeze
            }
    }
    Cas où çà marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application->ProcessMessages();
    func(); // appel d'une fonction très très longue.
    En clair, dans le cas n°2, il faudrait insérer Application->ProcessMessages() dans le corps de la fonction func().

    Cordialement.
    Un historique local pour Visual Studio 2005 et 2008 :
    http://www.codeplex.com/VLH2005

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 169
    Points : 80
    Points
    80
    Par défaut
    Merci bien!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/03/2010, 13h13
  2. Réponses: 21
    Dernier message: 09/02/2008, 23h09
  3. Encore une question à propos des jar & du classpath
    Par ®om dans le forum Général Java
    Réponses: 4
    Dernier message: 19/07/2007, 13h46
  4. Question à propos des compilateurs
    Par elf dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 20/07/2005, 17h00
  5. Question à propos des niveaux de transaction
    Par davy.g dans le forum Oracle
    Réponses: 3
    Dernier message: 18/01/2005, 15h31

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