信号量 MFC线程同步控制问题
2008-11-13 18:46
169 查看
目标:
WORK线程中运行到某处时触发该 MsgWaitForMultipleObjects等待的hEventSerThrdWait
关键代码:
主线程窗体中
gPrintJobs[0] = m_hEventTestReceiver;
gPrintJobs[1] = hEventSerThrdWait;
dwWake = MsgWaitForMultipleObjects(
gNumPrinting,
gPrintJobs,
FALSE,
INFINITE,
QS_ALLEVENTS);
if (dwWake >= WAIT_OBJECT_0 && dwWake < WAIT_OBJECT_0 + gNumPrinting)
{
}
}
else //如果是其他的消息,则保持消息循环
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TRACE("/r/n");
TRACE("PeekMessage");
TRACE("/r/n");
if(msg.message == WM_QUIT)
{
quit =TRUE;
exitCode = msg.wParam;
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
原做法是在从线程中声明一全局变量,HANDLE hEventSerThrdWait;
然后主线程中extern HANDLE hEventSerThrdWait
从线程运行到该处时SetEvent(hEventSerThrdWait);
但是该做法行不通
改为
从线程运行到该处时SendMessage,由从线程窗体事件响应函数中SetEvent(hEventSerThrdWait);即可激发MsgWaitForMultipleObjects返回,
不知道原因,思考中
WORK线程中运行到某处时触发该 MsgWaitForMultipleObjects等待的hEventSerThrdWait
关键代码:
主线程窗体中
gPrintJobs[0] = m_hEventTestReceiver;
gPrintJobs[1] = hEventSerThrdWait;
dwWake = MsgWaitForMultipleObjects(
gNumPrinting,
gPrintJobs,
FALSE,
INFINITE,
QS_ALLEVENTS);
if (dwWake >= WAIT_OBJECT_0 && dwWake < WAIT_OBJECT_0 + gNumPrinting)
{
}
}
else //如果是其他的消息,则保持消息循环
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TRACE("/r/n");
TRACE("PeekMessage");
TRACE("/r/n");
if(msg.message == WM_QUIT)
{
quit =TRUE;
exitCode = msg.wParam;
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
原做法是在从线程中声明一全局变量,HANDLE hEventSerThrdWait;
然后主线程中extern HANDLE hEventSerThrdWait
从线程运行到该处时SetEvent(hEventSerThrdWait);
但是该做法行不通
改为
从线程运行到该处时SendMessage,由从线程窗体事件响应函数中SetEvent(hEventSerThrdWait);即可激发MsgWaitForMultipleObjects返回,
不知道原因,思考中
相关文章推荐
- 线程同步傻问题:该被同步的变量没有用信号量控制,值是否会被改变
- MFC 线程同步问题
- 线程同步互斥的控制方法 互斥信号量区别
- 关于解决VS2010 MFC中button控件与控制变量的关联问题???
- 线程控制[pthread_create() pthread_join()] 线程同步[互斥锁 条件变量 信号量]
- 使用信号量控制Linux线程同步
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- MFC的dll中控制资源问题
- JavaWork_线程同步及并发控制的问题
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- 线程控制[pthread_create() pthread_join()] 线程同步[互斥锁 条件变量 信号量]
- MFC(2)MFC中使用信号量(semaphore)做线程同步——用户启动子线程打开串口
- 线程同步互斥的控制方法 互斥信号量的区别【转】
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- 使用信号量解决两个线程同步问题
- 信号量解决经典线程同步问题
- 关于解决VS2010 MFC中button控件与控制变量的关联问题???
- 使用信号量控制Linux线程同步