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

Delphi Discussion :

Tthread et appui sur bouton "fermeture" d'une tform


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 184
    Points : 149
    Points
    149
    Par défaut Tthread et appui sur bouton "fermeture" d'une tform
    Comment recréer mon probleme

    1. Créer une thread du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TCpuThread= class(Tthread)
      count:integer;
      procedure execute;override;
    2. Procedure execute et update
    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
     
    procedure TCpuThread.execute;
    while not CpuThread.Terminated  do
     begin
      inc(count);
      if count mod 5000=0 then  synchronize(update);
      end;
    end;
     
    procedure TCpuThread.update;
    begin
     
       form1.Caption:=inttostr(count);
     
    end;
    3. Créer la thread , par exemple dans le onclick d'un bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CpuThread:=tcputhread.create(false);
    4. Maintenant voici le problème
    Appuyez sur le bouton "X" de fermeture de la forme sans relâcher pour ne pas la fermer. Vous observez que la thread est carrément plus éxécutée. Même résultat si vous cliquez sur le X d'une autre forme du programme. Lorsque vous annulez la fermeture de la fenêtre (en déplacant le curseur et relâchant le bouton) la thread reprend là ou elle s'était arrêtée.

    Comment éviter ce problème ?
    J'imagine que c'est tout bête et que je manque qqchose d'évident.

  2. #2
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par sfpx
    Vous observez que la thread est carrément plus éxécutée.
    Bien vu ,mais je crois que ce n'est pas tout à fait vrai. Oui le thread est arrêté, mais uniquement au moment où il se synchronise (ou du moins il essaye) avec le thread principal.
    S'il n'y avait pas de synchronisation, je pense qu'il ne s'arrêterait pas. C'est "juste" cette synchro (CheckSynchronize) qui n'est plus exécutée quand on clique le bouton.

    Bon dev'
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

Discussions similaires

  1. sauvegarde liant des données par appui sur bouton
    Par Flavien44 dans le forum IHM
    Réponses: 2
    Dernier message: 11/06/2007, 18h20
  2. Réponses: 13
    Dernier message: 18/07/2006, 15h07

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