при нажатии на кнопку создаеться столько потоков сколько существует записей в memo1
допустим я создал 50 потоков.
1)как мне остановить вручнудю все эти 50 потоков и удалить их?
2)чтобы потоки удалились нужно в конце писать self.Terminate; self.free; ? или он сам удаляеться
3)как остановить например только 10-ый поток?
подскажите пожалуйса.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to Memo1.Lines.Count - 1 do begin
TMyThread.Create(false, Memo1.lines[i]);
end;
end;
Код:
type
TMyThread = class(TThread)
private
FUrl: string;
public
constructor Create(CreateSuspended: Boolean; AUrl: string);
protected
procedure Execute; override;
procedure UpdateCaption;
end;
implementation
uses Unit1;
constructor TMyThread.Create(CreateSuspended: Boolean; AUrl: string);
begin
inherited Create(CreateSuspended);
FUrl := AUrl;
FreeOnTerminate := true;
end;
procedure TMyThread.Execute;
var
http: TIdHTTP;
str: TStringList;
begin
str := TStringList.Create();
http := TIdHTTP.Create(nil);
str.Text:= http.Get(FUrl);
sleep(7000);
str.SaveToFile(inttostr(random(222))+'.html');
http.Free;
str.free ;
Synchronize(UpdateCaption);
// self.Terminate;
//self.free;
end;
procedure TMyThread.UpdateCaption;
begin
Form1.Memo2.Lines.Add(FUrl);
end;