Als privates Feld (Variable) in der TThread1-Klasse, oder als lokale Variable in der Thread-Methode ... da hat dann jeder Thread seine eigene Variable und kann auch seine eigene TidHTTP-Instanz darin ablegen.
Zum Syncronisieren braucht man übrigens keine externen Variablen mehr.
Man kann beim Synchronize-Aufruf zwar immernoch keine Parameter übergeben, aber in anonymen Methoden kann man auf lokale Variablen zureifen.
Delphi-Quellcode:
proccedure TThread1.Execute;
var
H: TidHttp; // kann auch in TThread1-Private deklariert sein, wenn man z.B. im Constuctor damit schon was machen/einrichten will
S: string;
begin
H := TidHttp.Create;
try
S := H.LoadFormIrgendwo;
Synchronize(procedure
begin
MyForm.MyLabel.Caption := S;
end);
finally
H.Free;
end;
end;
Kurze Prozeduren, welche man nicht auch noch an anderen Stellen benötigt (ebenfalls dort drüben aufrufen will), die kann man so inline deklarieren.