在对话框中,当按下某个BUTTON时, 中断正在执行的工作线程序, 请教在工作线程中怎样实现
在对话框中,当按下某个BUTTON时, 中断正在执行的工作线程序, 请问在工作线程中怎样实现?
代码如下写:对不对???
UINT ThreadFunction(LPVOID pParam)
{
MSG msg;
if (::PeekMessage(&msg,NULL,0,0,PM_REMOVE)) {//从Windows消息队列中取出消息
if (msg.message== WM_QUIT)//如果消息为退出,发送退出消息 {
//停止前的处理。。。。 AfxThreadEnd(0);
}else
{
//执行程序...
}
return 0;
}
//启动线程
CWinThread *pThread;
pThread=AfxBeginThread((AFX_THREADPROC)ThreadFunction, this);
//退出线程
::PostThreadMessage(pThread-> m_nThreadID, WM_QUIT, 0, 0);
------解决方案--------------------
要安全退出最好用Event,外部SetEvent,线程函数里WaitForSingleObject等待该事件。
------解决方案--------------------
http://topic.****.net/t/20010821/19/249613.html
------解决方案--------------------
while(1)
{
DWORD result = WaitForSingleObject(quitEvent, 0);
if (WAIT_OBJECT_0 == result) break;
......
}
-------------------------------------------------------
广告:VC/WinAPI 网络/多线程讨论 QQ群, 群号:41356711
代码如下写:对不对???
UINT ThreadFunction(LPVOID pParam)
{
MSG msg;
if (::PeekMessage(&msg,NULL,0,0,PM_REMOVE)) {//从Windows消息队列中取出消息
if (msg.message== WM_QUIT)//如果消息为退出,发送退出消息 {
//停止前的处理。。。。 AfxThreadEnd(0);
}else
{
//执行程序...
}
return 0;
}
//启动线程
CWinThread *pThread;
pThread=AfxBeginThread((AFX_THREADPROC)ThreadFunction, this);
//退出线程
::PostThreadMessage(pThread-> m_nThreadID, WM_QUIT, 0, 0);
------解决方案--------------------
要安全退出最好用Event,外部SetEvent,线程函数里WaitForSingleObject等待该事件。
------解决方案--------------------
http://topic.****.net/t/20010821/19/249613.html
------解决方案--------------------
while(1)
{
DWORD result = WaitForSingleObject(quitEvent, 0);
if (WAIT_OBJECT_0 == result) break;
......
}
-------------------------------------------------------
广告:VC/WinAPI 网络/多线程讨论 QQ群, 群号:41356711