Hallo ihr lieben,
mein Problem, ist das wenn ich einen Thread Beende per Teminate es sich immer um den zu letzt gestartenden handelt nicht um den, den ich will.!
Wie kann ich einen von vielen bestimmten beenden?
Starten tu ich nen Thrad so
Delphi-Quellcode:
if bookliste.Selected <> nil then
begin
user := Tpop3.Create(true);
user.Priority := tpNormal;
user.FIndex := bookliste.Selected.Index;
user.FreeOnTerminate := True;
user.OnTerminate := OnTerminate;
user.Resume;
end;
Beende so
Delphi-Quellcode:
ButtonClick
user.Terminate;
Thread
Delphi-Quellcode:
type
Tuser = class(TThread)
private
{ Private-Deklarationen }
protected
procedure Execute; override;
public
FIndex: Integer;
S: string;
procedure Ausgabe;
end;
procedure Tuser.Execute;
begin
User_info.id := FIndex; // BENÖTIGT UM FÜR JEDEN PROCED BESTIMMTE USER DATEN ZU BENUTZEN
for i := 1 to Counter do
begin
if Terminated then
begin
Synchronize(Ausgabe);
Exit;
end;
Do_other();
end;
Synchronize(Ausgabe);
end;
Das heisst also es können 2 oder X viele Threads laufen je nachdem....
Beim Start und erstellen eines Threads ziehe ich dann die UserDaten heran.
In der Form markiert man einen EIntrag X dieser ist gleich eines Datensatzen der INDEX wird übergeben an den Thread und vor Thredsstart die entsprechenden Daten ausgelesen und dann verarbeitet aber das ja auch egal