从线程外部结束线程 给出一个互斥量作为线程关闭的标记, 一个布尔变量作为简单通讯变量WaitForSingObject( ...)while (canExit==FALSE){}ReleaseMutex(...)这样外面就可以安全关闭线程了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UI线程可以采用发送WM_QUIT消息的方式。pThread->PostThreadMessage(WM_QUIT, 0, 0);WORK线程可以定义一个事件HANDLE hKillThread;UINT ThreadProc(LPVOID lpParam){ while(1){ if(WaitForSingleObject(hKillThread, 1000) == WAIT_OBJECT_0){ break; } ..... } return 0; } 自定义一个消息: #define WM_FINISHED WM_USER+1然后调用: ::PostMessage((HWND)pParam,WM_FINISHED,0,0) 线程是多个,且线程中的while(1)循环内有socket阻塞式通信,当超时时从线程外部终止超时的线程。怎么实现? 强行CLOSE时要注意: socket内不要用new(包括CString, 动态分配的buffer) 否则Memory Leak socket内不能用MessageBox() 否则Access violation我的一点经验 还不能发送消息。最好的方法,是在socket循环中检查退出标志,确定是否中断当前连接。另外,在发送WM_QUIT后,必须WaitforSingleObject,直到pThread中的句柄为空 我们的软件中,有对Socket退出的处理,你可以下载看看我们的网址:http://www.intertimes.com.cn MFC怎样是画笔画的图形具有保持功能?还是不会! 如何让一个窗口在另外一个窗口之上 用UDP组播(多播)在internet上进行语音传输的方案可行性如何? (急!在线等!)dll里使用MSMQ 立体地形图配色2 关于访问注册表的问题,在线等! 就要请假了,散分 请找错! 啊,救命啊。 socket的accept线程调试出了点问题谁能帮我看看 目前流行的LDAP服务器产品有哪些? 新手,怎样做延时100微秒,求救.
pThread->PostThreadMessage(WM_QUIT, 0, 0);WORK线程可以定义一个事件
HANDLE hKillThread;UINT ThreadProc(LPVOID lpParam)
{
while(1){
if(WaitForSingleObject(hKillThread, 1000) == WAIT_OBJECT_0){
break;
}
.....
} return 0;
}
#define WM_FINISHED WM_USER+1
然后调用:
::PostMessage((HWND)pParam,WM_FINISHED,0,0)
socket内不要用new(包括CString, 动态分配的buffer)
否则Memory Leak
socket内不能用MessageBox()
否则Access violation
我的一点经验
另外,在发送WM_QUIT后,必须WaitforSingleObject,直到pThread中的句柄为空
我们的网址:http://www.intertimes.com.cn