ServerSocket 创建了多个线程,如何全部停止(100分)

  • 主题发起人 主题发起人 lannylanny
  • 开始时间 开始时间
L

lannylanny

Unregistered / Unconfirmed
GUEST, unregistred user!
Execute部分
while (not Terminated) and ClientSocket.Connected do
if mysockets.WaitForData(60000) then
*****

我想停止ServerSocket服务,停掉所有线程, 结果要等很长时间才能停掉,有什么好的办法?
for i:= TheList.Count - 1 downto 0 do
TSocketThread(TheList.Items).Terminate;
SS.Socket.Close;
 
比较粗暴的办法是用TerminateThread(TheThread.Handle),这样是快了,但线程打开的资源
不能干净地释放。
 
首先,你要断开mysockets (sySockets.Close),然后再 thread.Terminate ,
 
这些方法都试过了,还是有问题。有这方面比较优秀的代码?
 
怎么,你在线程中监听端口,在主线程中断开连接,应该可以的阿,不在一个线程,应该可以立即端开的说
 
應該中斷所有的連接,就可以自動釋放線程了吧.
 
是不是60000太长?
 
后退
顶部