Einzelnen Beitrag anzeigen

SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Funktionsweise Thread.WaitFor

  Alt 13. Aug 2014, 13:55
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?
  Mit Zitat antworten Zitat