![]() |
Thread Destroy Prob Clientsocket
Hi,
ich habe folgenden Code: Thread-Unit:
Delphi-Quellcode:
Main-Form:
TCsThread = class(TThread)
private Cs: TClientSocket; FHost: string; FIPort: Integer; procedure OnClientR(Sender:TObject;Sock:TCustomWinSocket); protected procedure Execute; override; public constructor Create(CreateSuspended: Boolean); destructor Destroy; override; property Host: String read FHost write FHost; property Port: Integer read FIPort write FIPort; procedure shutdown; end; procedure TCsThread.shutdown; begin PostQuitMessage(0); end; destructor TCsThread.Destroy; begin Cs.Free; inherited Destroy; end; constructor TCsThread.Create; begin inherited Create(True); Cs := TClientSocket.Create(nil); cs.OnRead:=OnClientR; end; procedure TCsThread.Execute; begin cs.Host:=Host; cs.Port:=Port; Cs.Active:=true; while GetMessage(Msg, 0, 0, 0) do //hier der Fehler begin DispatchMessage(Msg); end; end;
Delphi-Quellcode:
Sobald ich shutdown aufrufe bekomme ich folgenden Fehler:
procedure TForm1.Button1Click(Sender: TObject);
var cs:TCsThread; begin Cs:=TCsThread.Create(true); Cs.host:='127.0.0.1'; Cs.port:=1000; cs.FreeOnTerminate:=true; cs.Resume; end; procedure TForm1.Button4Click(Sender: TObject); begin cs.shutdown; end; Zitat:
Delphi-Quellcode:
mfg
procedure TCsThread.OnClientR(Sender:TObject;Sock:TCustomWinSocket);
begin PostQuitMessage(0); end; gandime |
Re: Thread Destroy Prob Clientsocket
Das funktioniert so leider nicht. PostQuitMessage schickt die Nachricht WM_QUIT an den aufrufenden Thread. Du willst sie aber an einen anderen Thread schicken. Du kannst einmal ausprobieren, ob du die Nachricht mit PostThreadMessage schicken kannst. Ansonsten kannst du mit PostThreadMessage eine eigene Nachricht schicken, auf die du in der Schleife prüfen musst.
|
Re: Thread Destroy Prob Clientsocket
thx mit PostThreadMessage(self.ThreadID,WM_Quit,0,0); geht es super!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz