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

Composants VCL Delphi Discussion :

Arrêter les routines dans un thread


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 49
    Points
    49
    Par défaut Arrêter les routines dans un thread
    Bonjour,

    Je voudrais savoir comment je peux arrêter une routine dans un thread (sans dégat)

    J'uilise le composant IdThreadComponent sous le nom MyThread

    Je lance donc ma routine de recherche ainsi :

    avec l'appel : MyThread.Start;

    Code du thread
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    procedure TfrmMain.MyThreadRun(Sender: TIdThreadComponent);
    begin
      Recherhe();
      ThreadOrdiJoue.Stop;
    end;
    La routine recherche() est dans une DLL et utilise un callback pour renvoyer les résultats.

    Je voudrais savoir comment arrêter la routine de recherche au besoin ?

    merci

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Dans toute procedure effectuant une boucle, le moyen le plus propre d'interrompre le traitement est de le demander.

    Je te propose de decouper ton processus de recherche en etapes, entre lesquelles tu teste uen variable boolean mise a true lorsque l'on requiert un arret.
    A ce moment seulement le processus de recherche pourra s'arreter proprement. Du mois aussi proprement que le premettra ta fonction d'arret.

    Pour transmettre cette information, tu peux soit, affecter directement une variable au sein de la Dll, checké a interval regulier, soit, appeler une callback de l'exe qui testera une variable de l'exe.
    Ou tout autre moyens ....

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    ok merci,

    Je vais opter pour cette solution.

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    pense au tag alors

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Points : 49
    Points
    49
    Par défaut
    Résolu ok mais pas seulement avec l'idée. J'attendais d'avoir fini la programmation.
    Je vais quand même considérer que c'est résolu au niveau forum.

    merci.

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

Discussions similaires

  1. Gérer les exceptions dans un thread
    Par Pynouz dans le forum C#
    Réponses: 5
    Dernier message: 06/10/2011, 12h29
  2. [DataStage 7.5]Obtenir les routines dans un fichier
    Par Unsurgent dans le forum DataStage
    Réponses: 3
    Dernier message: 28/07/2011, 11h18
  3. [WS 2008] Comment cacher le bouton arrêter pour les utilisateurs dans TS
    Par keks06 dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 18/08/2009, 18h53
  4. comment utiliser les lock dans les threads ?
    Par skad dans le forum Général Python
    Réponses: 2
    Dernier message: 15/07/2008, 14h28

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