T
talent002
Unregistered / Unconfirmed
GUEST, unregistred user!
我用idtcpserver和idtcpclient做C/S的通讯程序。总是出现问题。
退出时总是有个错误的对话框出来。
想问一下这样的代码会不会调用MyThread.Terminate里程序无法结束?
procedure MyThread.execute;
var
dataointer;
begin
inherited;
getmem(data,1000);
while not self.Terminated do
begin
self.tcpclient.ReadBuffer(data^,1000);《〈程序运行到这里如果服务器端没有数据发来,会不会无限期等下去?导致调用MyThread.Terminate也不能把线程终止?
....
....
end;
freemem(data);
end;
2、我在退出程序时要不要再连接在onclose里终止线程?
退出时总是有个错误的对话框出来。
想问一下这样的代码会不会调用MyThread.Terminate里程序无法结束?
procedure MyThread.execute;
var
dataointer;
begin
inherited;
getmem(data,1000);
while not self.Terminated do
begin
self.tcpclient.ReadBuffer(data^,1000);《〈程序运行到这里如果服务器端没有数据发来,会不会无限期等下去?导致调用MyThread.Terminate也不能把线程终止?
....
....
end;
freemem(data);
end;
2、我在退出程序时要不要再连接在onclose里终止线程?