Hallo zusammen,
ich habe gerade Probleme mit den Threads.
Ich möchte gerne irgendwie warten, bis ein Thread erfolgreich beendet wurde.
Dafür habe ich nun die Methode "WaitFor" gefunden.
Nur verstehe ich die Funktionsweise nicht.
Hier der Aufbau meiner Anwendung:
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.ComCtrls,
Vcl.StdCtrls,
Vcl.ExtCtrls,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
importList: TStringList;
public
{ Public-Deklarationen }
end;
TThread1 =
class(TThread)
protected
procedure Execute;
override;
private
IdHTTP1: TIdHTTP;
page:
String;
response:
String;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TThread1.Execute;
begin
IdHTTP1 := TIdHTTP.Create();
self.response := IdHTTP1.Get(self.page);
end;
procedure TForm1.Button1Click(Sender: TObject);
var Thread1: TThread1;
begin
Thread1 := TThread1.Create(True);
Thread1.FreeOnTerminate := True;
Thread1.response := '
Foo';
Thread1.page := '
http://google.de';
Thread1.Start;
showmessage(Thread1.response);
end;
end.
Es ist klar, dass ich jetzt nur eine Meldung mit "Foo" bekomme, da der Thread ja noch nicht beendet wurde.
Wie kann ich nun warten, bis der Thread beendet wurde um dann die Meldung auszugeben?