to:张无忌
ics控件中的wsocket使用以下的代码等待WM_QUIT来退出消息循环。
procedure TCustomWSocket.MessageLoop;
var
MsgRec : TMsg;
begin
{ If GetMessage retrieves the WM_QUIT, the return value is FALSE and }
{ the message loop is broken. }
while GetMessage(MsgRec, 0, 0, 0)do
begin
TranslateMessage(MsgRec);
DispatchMessage(MsgRec)
end;
FTerminated := TRUE;
end;
我的的程序中的每个线程都使用了一个wsocket,如果少量的线程,我可以通过发送
PostThreadMessage(g_Thread[l_ThrdID - 1].ThreadID, WM_QUIT, 0, 0);
退出MessageLoop循环,但如果线程数量大的话,如50-60个,是否就很难停止每个线程(目前我的程序就是这样),但如果使用TerminateThread,确实可以立即停止线程,但线程中的一些代码就无法处理了,请老兄指点一下,万分感谢!!!!!!