【发布时间】:2016-04-12 19:37:21
【问题描述】:
我正在从TThread 继承的类中创建TServerSocket 的实例。我的问题是,Execute 过程中应该包含什么代码,它是主线程代码?
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 过程(执行)应该做的任何繁忙的工作操作,除了循环和睡眠?
在here 中,有人建议使用消息循环,但我认为该线程不会接收任何消息。
【问题讨论】: