UINT MyThread(HWND hWnd)
{
while(true)
{
WaitForSingleObject(eventSatrt, INIFINIT);
Sleep(100);
if( bExit )
return 1;
}
return 0;}如上函数描述的,eventStart没有触发时,线程MyThread是不是一直堵塞在WaitForSingleObject(eventSatrt, INIFINIT)处?线程会去判断bExit吗?bExit为TRUE时是否退出呢?如果一直堵塞在那里的话,如何让线程退出呢?
接触线程不深,请各位多指教!!
{
while(true)
{
WaitForSingleObject(eventSatrt, INIFINIT);
Sleep(100);
if( bExit )
return 1;
}
return 0;}如上函数描述的,eventStart没有触发时,线程MyThread是不是一直堵塞在WaitForSingleObject(eventSatrt, INIFINIT)处?线程会去判断bExit吗?bExit为TRUE时是否退出呢?如果一直堵塞在那里的话,如何让线程退出呢?
接触线程不深,请各位多指教!!
等待多个事件
第三个参数设为FALSE
等待多个事件
第三个参数设为FALSE
=======================================
楼上的这个可行,就是要判断返回值是什么,然后根据返回值来做响应的处理,对不?不会,会一直停在WaitForSingleObject(eventSatrt, INIFINIT);这里,直到event Set
=============================================================================
我试了一下,的确是一直停在WaitForSingleObject(eventSatrt, INIFINIT);这里另外,我把程序改成这样了
UINT MyThread(HWND hWnd)
{
while(!bExit)
{
WaitForSingleObject(eventSatrt, INIFINIT);
if ( bExiet )
return 0
...
Sleep(100);
...
}
return 0;}
退出时的处理
void OnExit()
{
bExit = TRUE;
eventSatrt.SetEvent();
PostMessage(WM_CLOSE)
return;
}
这样就可以安全的退出了
以后的代码才会被执行到。
用WaitForMultipleObjects就可以搞定多事件等待
主要是搞清楚WaitForMultipleObjects的返回值代码在我台式机里面,最近两天挂了
等我修好了帮你找找
用WaitForMultipleObjects就可以搞定多事件等待
主要是搞清楚WaitForMultipleObjects的返回值代码在我台式机里面,最近两天挂了
等我修好了帮你找找
================================谢谢,看了MSDN,就是返回值有待确定