Arrêt d'un thread

cs_commodore Messages postés 20 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 2 octobre 2002 - 11 sept. 2002 à 18:13
cs_commodore Messages postés 20 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 2 octobre 2002 - 13 sept. 2002 à 21:46
J'aimerai savoir s'il existe une une variante que ExitThread pour arréter un thread . Car je voudrais arréter un thread d'un a partir d'un BT arrét et vu que j'ai plusieur thread en fontionnement !

5 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
11 sept. 2002 à 21:30
La méthode Terminate est là pour celà.

Tu programmes les threads en utilisant les API ?

May Delphi be with you.
Delphi advanced
0
cs_commodore Messages postés 20 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 2 octobre 2002
12 sept. 2002 à 06:38
Je suis debutant en la matiere et ci dessous mon thread ,j'en ai une 10 zaine comme cela en execution et j'aimerais pouvoir arreter les threads par des boutons , si qq pouvait me donner un exemple de code pour arreter ce thread par exemple

//
//Thread Module 1
Constructor Module01.Create;
begin
FreeOnTerminate := True;
inherited Create(false);
Priority := tpIdle;
end;
Procedure Module01.Execute;
Var
Bo:integer;
Tmp:Extended;
Begin
inherited;
Depart[Indice1]:=true;
....
end;
0
cs_commodore Messages postés 20 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 2 octobre 2002
13 sept. 2002 à 14:11
j'ai regardé le listing et j'ai inclu la ligne Module01.Terminate dans mon source.Mais cette ligne me donne une erreur : Forme d'appel de methode autorisé seulement pour pour le methodes de classe . ci dessous j'ai mis le listing de la declaration des threads , j'ai oublié quelque chose ?.Car meme la commande ExitThread ne fonctionne pas .
Merci de votre aide.

type
Module01 = Class (TThread)
protected
procedure Execute();override;
public
constructor Create();
end;
Module02 = Class (TThread)
protected
procedure Execute();override;
public
constructor Create();
end;
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
13 sept. 2002 à 19:55
Dans ta déclaration, tu ne respectes pas les conventions décriture préconisées par Borland et celà t'amène à une confusion certaine.
Quand tu écris :
Module01 = Class (TThread)
En réalité tu déclares une classe qui hérite de la classe TThread.
Ensuite, dans ton code, tu appelles ce que tu crois être une instance de la classe, alors que tu appelles la classe.
La convention standard recommance de préfixer de la lettre T une déclaration de classe.
Ainsi :
TModule01 = Class (TThread)
serait correct et à l'utilisation :
Module01 := TModule01.Create;

Module01 est déclaré -> Module01 : TModule01;
Ensuite, tu peux appeler les méthodes s'appliquant à l'objet ainsi créé et non à la classe.
NE SURTOUT PAS confondre méthode s'appliquant à une instance d'une classe et les méthodes de classe.
Avec ces quelques corrections, tu ne devrais plus avoir de problèmes...

May Delphi be with you.
Delphi advanced
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_commodore Messages postés 20 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 2 octobre 2002
13 sept. 2002 à 21:46
Oki , c'est cool , ca fonctionne
encore merci pour l'aide apporté
0
Rejoignez-nous