hi,
aus meiner Hauptanwendung erstelle und starte ich einen Thread. Der Thread startet wieder einen Thread.
Aus der Hauptanwendung übergebe ich Thread1 die Methode. Thread1 übergibt diese Methode Thread2. Thread2 speichert diese in eine Variable.
Beim Aufruf der Methode aus Thread2 kommt es zum Fehler, also muss ich die Methode synchronisieren. Da ich aber Variablen übergeben muss, wie kann ich das machen? Habe da was gefunden
Delphi-Quellcode:
//http://www.dev-center.de/index.php?cat=tutorials&file=multithreading
type
TBinFertig =
procedure(
const Content:
String)
of object;
TMyOwnThread =
class(TThread)
private
FBinFertig: TBinFertig;
procedure SyncBinFertig;
public
property BinFertig: TBinFertig
read FBinFertig
write FBinFertig;
end;
implementation
procedure TMyOwnThread.SyncBinFertig;
begin
if Assigned(FBinFertig)
then FBinFertig(DasIstDerInhaltDerWebseite);
end;
procedure TMyOwnThread.Execute;
begin
try
// Download der Seite ...
// Synchronisieren
Synchronize(SyncBinFertig);
except
on e:
exception do begin
// mache hier irgendetwas mit dem Fehler.
end;
end;
end;
Nur brauche ich dann gobale Variablen im Thread und das möchte ich vermeiden. Hat jemand eine andere Idee?