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 :

Thread : cmt la killer lors d'un gros calcul


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut Thread : cmt la killer lors d'un gros calcul
    Bonjour,

    J'ai une Thread qui exécute un très très gros calcul => parfois j'aimerais le stoper. Quand j'envoie à la Thread la fonction Terminate celle-ci ne répond plus Et le calcul continue!!! Comment faire pour tuer cette thread sans rien planter dans mon programme.
    Notez que j'ai des instanciations dynamiques dans cette thread et donc que je souhaiterais, dans la mesure du possible, que le fait de killer la thread ne me crée pas de fuites de mémoire.

    Cordialement,
    Rodrigue
    Rodrigue

  2. #2
    ubu
    ubu est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Tu pourrais rajouter dans ton gros calcul une ligne du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (Terminated)
      return;
    Le but du jeu est de tester (assez) réguliérement la propriété Terminated du thread pour savoir s'il n'a pas reçu d'évenement Terminate.

    Pour les instanciations dynamiques, bah, il faut s'en occuper dans le destructeur du TThread (ou dans la proc OnTerminate).

  3. #3
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut,
    de manière générale dans la classe TThread Borland a prévu le coup
    utilise simplement
    • Suspend(); pour stopper l'éxécution du thread sans l'arrèeter définitivement
      Resume();pour rédémarre un thread stopé par Suspend();

    a toi simplement de t'assurer que les couples Suspend() Resume() soient paires
    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  4. #4
    Membre habitué Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Points : 157
    Points
    157
    Par défaut
    D'accord, merci beaucoup...
    Rodrigue

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

Discussions similaires

  1. besoin d'aide pour un gros calcul de malade
    Par thor76160 dans le forum Langage
    Réponses: 4
    Dernier message: 29/03/2010, 16h21
  2. [XL-2003] Gros calcul de moyennes multi critères
    Par Aulanh dans le forum Excel
    Réponses: 19
    Dernier message: 20/01/2010, 12h06
  3. Réponses: 18
    Dernier message: 11/08/2009, 17h57
  4. [Processeur] Gros calculs et durée de vie du cpu
    Par charlespierre dans le forum Composants
    Réponses: 3
    Dernier message: 04/03/2009, 06h21

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