Thread, arrêt direct

cs_ekinoks Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 novembre 2005 - 11 janv. 2004 à 11:44
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008 - 11 janv. 2004 à 19:09
Salut ;)
Est-il possible de stoper un thread directement et pas indirectement, je m'explique.
Est t'il possible de stoper le thread directement a partir d'une procedure comme un truk comme ca :

procedure TTT.Execute;
begin
...
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// ici un truk du style STOP TTT.EXECUTE sans que se soi TTT.execute qui se stop lui meme, Cad que meme si ttt.execute plante et ne reponde plus a rien, a partir d'une procedur exterieur comme celle ci je puisse le Stoper                       
end;


Une tel chose est t'elle possible ?
Merci

1 réponse

yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
11 janv. 2004 à 19:09
nomDuThread.suspend;// attend.
nomDuThread.resume; //reprend là où il était ...

thread:=TonTypedeThread.Create(false);
//thread.Suspend;
thread.Terminate;
thread.Free;

devrait fonctionner si tu hérites des fonctionnalité de la classe de base TThread.

exemple:

type
TMonThread = class(TThread)
private
{ Déclarations privées }
protected
procedure Execute; override;
public
constructor Create();
end;

implementation
procedure TMonThread.Execute;
begin
.....
end;
constructor TMonThread.Create;
begin
FreeOnTerminate := True;
inherited Create(true);
Priority := tpNormal;
//tpNormal//tpLowest//Lower
//tpIdle//tpHigher//timecritical
end;

{
var TR:TMonThread;
TR:=TMonThread.Create(false);
//TR.Suspend;
try TR.Terminate; except;end;
try TR.Free; except;end;

yve
0
Rejoignez-nous