TServerSocket
から継承されたクラス内にのインスタンスを作成していますTThread
。Execute
私の質問は、MAIN スレッド コードであるプロシージャ内にどのコードを含める必要があるかということです。
TServerThread = class(TThread)
private
FServerSocket: TServerSocket;
// FServerSocket event handlers
procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure ClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure Listen(Sender: TObject; Socket: TCustomWinSocket);
protected
procedure Execute; override;
public
constructor Create;
destructor Destroy; override;
end;
これがクラスの外観です。したがって、その実装がどのように見えるかがわかります。
私がこれを求めている理由は、すべてのメイン コードがイベント ハンドラーで発生しているためです。ループとスリープを除いて、MAIN プロシージャ (実行) が実行する必要のあるビジーな作業操作は考えられません。
ここで、誰かがメッセージ ループを提案しましたが、スレッドがメッセージを受信しないと思います。