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 :

Question simple sur les threads :)


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 8
    Points : 7
    Points
    7
    Par défaut [RESOLU] Question simple sur les threads :)
    Bonjour,

    Je souhaiterais vérifier si mon thread est bien terminé avant de quitter mon application, car j'ai parfois une erreur lorsque je quitte mon appli et je pense que cela provient de mon thread. :

    J'ai fait une recherche sur le forum et suis tombé sur ce topic : http://www.developpez.net/forums/vie...ghlight=thread

    Ca n'a pas l'air compliqué (encore faut-il le savoir ) mais je n'ai pas accès à cette propriété "ReturnValue"...

    Ma classe thread est "processus" et je l'instancie dans mon prog comme ceci :

    Et aussi, quelles sont les valeurs que peut retourner "ReturnValue" ? (pas trouvé dans l'aide de Builder)

    Merci !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 61
    Points : 63
    Points
    63
    Par défaut
    Bonsoir,

    Tu peux faire ceci:

    1°) tu déclare une variable EndTread dans la partie
    privée de ta classe TForm1

    2°) Dans le constructeur de ton TForm1, tu l'initialise celle ci à False
    au moment ou tu lance le thread, tu lui affecte True

    3°) Crée un gestionnaire evenement de ton thread OnTerminate dans
    lequel tu met EndThread à true

    4°)Crée un Gestionnaire OnClose de ton TForm1 dans cecui ci,
    si EndTread = false alors, passe Action à caNone
    sinon passe Action à caFree

    voici un exemple pour illustrer ce propos
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
    {
          ...   
          EndThread = true;
         ...
    }
    // Lance ton Thread
    void TForm1::DoExecTHread(void)
    {
        MyThread = new TMyTread(....);
       MyThread.OnTerminate = Thread_End;
       EndThread = false;  
     ....
    }
    // Déclarer dans la partie privée de ta Form
    void TForm1::Thread_End(TObject *Sender)
    {
        ...
        EndThread = true;
    }
     
    void __fastcall TForm1::FormClose(TObject*, TCloseAction &Action)
    {
        if(EndTread) Action = caNone;
        else Action = caFree;
    }
    Cordialement Laurent
    C++ BUILDER & DELPHI

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup ! votre code m'a permis de voir que le thread se terminait bien, c'est une bonne technique pour vérifier l'état du thread.

    En fait, l'erreur provenait de la propriété "Visible" d'un composant ProgressBar que je changeais dans le thread...je ne comprends pas bien l'erreur...

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

Discussions similaires

  1. Question simple sur les BIGINT ?
    Par sachav dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/12/2007, 10h49
  2. [Débutant] Question simple sur les checkbox
    Par Mil17 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/08/2007, 15h05
  3. [MySQL] Question simple sur les tableaux pour un initié
    Par bom8407@hotmail.com dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/03/2007, 11h22
  4. Réponses: 4
    Dernier message: 16/11/2006, 02h10
  5. question simple sur les select dynamiques
    Par grinder59 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/01/2006, 15h53

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