救命啊,难道没人可以帮我吗??急呀!!!!!!!!!!!!!!!(200分)

  • 主题发起人 主题发起人 BUSI
  • 开始时间 开始时间
B

BUSI

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1314453

接着那个问题,又有个问题,在服务端采用阻塞方式,给客户开线程,可是当客户在传输数据,
或者已经断开连接时,在服务端的主程序中我直接的采用SS.CLOSE(SS是TServerSocket),可程序
每执行到这一句时,程序就不动了,这是问题6,还有
问题7:在Delphi中调试该程序,不久就出现了内存不足的问题,我想是不是线程没给释放内存
可又不知道如何释放

大虾们,帮帮忙,至少up一下,让我的心里好过点,我没多少分了,就算帮帮忙总行吧!!
如果谁能给个相类似的例程,感激不尽,bow 先!!!!!!!!!!!!!!!!
 
Up~
觉得用个
WaitForSingleObject( ClientThread.Handle, 10000 ) = WAIT_TIMEOUT then
begin
ClientThread.Terminate;
ClientThread.Free;
ClientThread:= nil;
end;
等待条件满足TimeOut时间时就释放线程。
 
结束线程最好在线程的内部循环中执行
if 满足某种条件 then
YourThread.Terminate;
如果非要在外部的话,还要用WinAPI TerminateThread(hThread:THandle;dwexitCode:DWORD);
前提是线程内部不要有死循环
关于资源释放的问题,你在线程创建时加上下面这句,在线程终止时会自动释放资源:
FreeOnTerminate:=true;
判断线程是否结束用: if YourThread.Terminated then
 
最好不要自动中断,在满足条件时控制中断
 
后退
顶部