Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

TThread.Create erzeugt einen Stack Overflow?

  Alt 2. Mär 2007, 16:02
Hi,

Ich bastel mal wieder mit Threads rum.

folgender Code:
Delphi-Quellcode:
TConnectThread = class(TThread)
  private
    FTCP: TIdTCPClient;
    FHost: String;
    FPort: Integer;
    FConnected: Boolean;
  public
    procedure Execute; override;
    property TCP: TIdTCPClient read FTCP write FTCP;
    property Host: String read FHost write FHost;
    property Port: Integer read FPort write FPort;
    property Connected: Boolean read FConnected;
  end;

procedure TConnectThread.Execute;
begin
  Priority:=tpLower;
  FConnected:=False;
  FTCP.Connect(FHost,FPort);
  FConnected:=True;
end;
Delphi-Quellcode:
  try
    CT:=TConnectThread.Create(True); <--
    CT.FreeOnTerminate:=True;
    CT.TCP:=Fidtcp;
    CT.Host:=Host;
    CT.Port:=Port;
    T:=GetTickCount+5000;
    CT.Resume;
Wenn ich das ganze so aufrufe wird bei TConnectThread.Create eine Exception geworfen welche da lautet "Stack Overflow".
Das ganze kann man auch mit einem TThread machen, es passiert das selbe.

Das ganze wird in keiner Rekursion, ja noch nichtmal in einer Schleif aufgerufen, von daher verstehe ich absolut nicht was das soll

Hat da irgendwer eine idee?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat