首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

退出线程的时候怎么等待socket关闭

2012-03-07 
退出线程的时候如何等待socket关闭在主线程里,我需要退出的时候向工作线程发送消息, 并关闭socket连接,但

退出线程的时候如何等待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事件专门是用来处理线程退出问题的。

热点排行