线程中含有阻塞是socket,请问如何在外部终止线程
线程中是阻塞式的socket,我想在外部OnStop()来终止线程应该如何操作?搜了一些贴没发现具体的,小弟很菜,请大侠给出具体代码,谢谢大家。
DWORD WINAPI ThreadProc(LPVOID param)
{
while(true)
{
accept(...);
recv(...);
}
return 0;
}
void CTestDlg::OnStop()
{
//请问这里要怎样结束线程?
closesocket(socket);
}
[解决办法]
2楼的方法可以,但是线程最好别强杀。。
可以在while置个标识位 while(bflag)
想退出线程时,只需要让bflag=false;
[解决办法]
[解决办法]
[解决办法]
while(TRUE)
{
if(PeekMessage(&msg,0,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
if(msg.message==IDCANCEL) // <---这里退出
break;
}
}
[解决办法]
用select再accept,不要采用永久阻塞模式