退出线程的时候如何等待socket关闭
在主线程里,我需要退出的时候向工作线程发送消息, 并关闭socket连接,但怎样才能正常的等待socket关闭之后再退出啊??我用event好像不起作用,用WaitForSingleObject的时候close(socket)又阻塞住了。。。。请教各位大侠。。。。该怎么处理呢。。
工作线程
while(ThreadTerminated)
{
case WM_MYQUIT:
ThreadTerminated = 0;
break;
}
__fastcall MyThread::~ MyThread()
{
Close(socket); //阻塞在这里了.....
MyEvent->SetEvent();
}
主线程:
PostThreadMessage(pLoginThread->ThreadID, WM_DISCONNECTLOGIN, 0, 0);
MyEvent->WaitFor(INFINITE);
[解决办法]
是closesocket(socket),而不是close(socket)
[解决办法]
有个OnTerminated事件专门是用来处理线程退出问题的。