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

Langage Delphi Discussion :

Comment recycler un thread ds un pool de thread


Sujet :

Langage Delphi

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 428
    Par défaut Comment recycler un thread ds un pool de thread
    Bonjour ;

    J'utilise un pool de thread maison qui est customisé (max de thread) et je souhaite savoir comment recycler en Delphi 7 un thread une fois qu'il a terminé son activité.
    Je ne veux pas laisser les threads se suicider à la sortie de la méthode run ou execute pour en créer de nouveaux (dommage !).

    Merci;

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Tu peux faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Instructions du Pgm appelant 
    // premier appel : mythread1:=mythread.create(false) (ou ...create(true) ; mythread.resume; )
    // autres appels : mythread1.resume ;
    // libération    : mythread1.terminate ; mythread1.resume ;
     
    procedure Tmythread.execute ;
    begin 
    repeat RealExecute ; suspend ; until terminated ;
    end ;
     
    procedure TmyThread.RealExecute ;
    begin
    // ici le code d'éxecution du thread
    end ;

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 428
    Par défaut
    Citation Envoyé par Graffito
    Bonjour,

    Tu peux faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Instructions du Pgm appelant 
    // premier appel : mythread1:=mythread.create(false) (ou ...create(true) ; mythread.resume; )
    // autres appels : mythread1.resume ;
    // libération    : mythread1.terminate ; mythread1.resume ;
     
    procedure Tmythread.execute ;
    begin 
    repeat RealExecute ; suspend ; until terminated ;
    end ;
     
    procedure TmyThread.RealExecute ;
    begin
    // ici le code d'éxecution du thread
    end ;
    Bonjour;

    J'ai essayé ca mais ce ne fonctionne pas : le traitement associé au deuxième resume n'est jamais réalisé !
    Bizare !!!!

    A+;

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/07/2006, 10h34
  2. [Info]Création d'un Pool de thread
    Par yanis97 dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 06/03/2006, 18h23
  3. [Thread]Pool de threads
    Par rlnd23 dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 14/02/2006, 16h01
  4. Réponses: 3
    Dernier message: 22/11/2005, 19h23
  5. Réponses: 6
    Dernier message: 30/09/2005, 00h53

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