2
2373088
Unregistered / Unconfirmed
GUEST, unregistred user!
本人在ServerSocket编程中自创建TServerClientThread进行接收和发送数据时发现,
客户端链接后,线程自动创建,但客户端断链时,线程却照样在运行,请问如何停止?
即要求当无客户端链接时,线程自动停止不占用系统资源。
主要原代码如下:
type
TSctRecv = class(TServerClientThread)
private
protected
procedure execute;override;
procedure ClientExecute;override;
end;
var
SctRecv:TSctRecv;
OnGetThread事件:
SctRecv:=TSctRecv.Create(False,ClientSocket); //创建线程
SctRecv.Priority:= tpIdle;
SocketThread := SctRecv;
procedure TSctRecv.Execute;
begin
repeat
synchronize(ClientExecute); //同步线程
until terminated;
end;
procedure TSctRecv.ClientExecute;
begin
..............
end;
拜托各位大虾尽快进行指点。
客户端链接后,线程自动创建,但客户端断链时,线程却照样在运行,请问如何停止?
即要求当无客户端链接时,线程自动停止不占用系统资源。
主要原代码如下:
type
TSctRecv = class(TServerClientThread)
private
protected
procedure execute;override;
procedure ClientExecute;override;
end;
var
SctRecv:TSctRecv;
OnGetThread事件:
SctRecv:=TSctRecv.Create(False,ClientSocket); //创建线程
SctRecv.Priority:= tpIdle;
SocketThread := SctRecv;
procedure TSctRecv.Execute;
begin
repeat
synchronize(ClientExecute); //同步线程
until terminated;
end;
procedure TSctRecv.ClientExecute;
begin
..............
end;
拜托各位大虾尽快进行指点。