您的位置:首页 > 移动开发 > Objective-C

主消息循环,MsgWaitForMultiObjects的使用

2015-04-15 13:20 281 查看
MsgWaitForMultiObjects通常用在主消息循环中,在等待内核对象的同时,能够响应其他关心的消息

http://bbs.csdn.net/topics/360199786

 

int exitThreadCount = 0; //判断线程退出的个数
int waitThreadCount = 4; //等待的线程个数
while(TRUE)
{

DWORD result ;
MSG msg ;

result = MsgWaitForMultipleObjects(waitThreadCount, handle,//句柄的数组
FALSE, INFINITE, QS_ALLINPUT);
if (result >= WAIT_OBJECT_0 && result < WAIT_OBJECT_0 + waitThreadCount)
{
exitThreadCount ++;
if(exitThreadCount >= 1 && exitThreadCount <= 3)
{

<span style="color:#333333;background-color: rgb(255, 0, 0);"> int nIndex = result - WAIT_OBJECT_0;
handle[nIndex] = handle[waitThreadCount-1];
handle[waitThreadCount-1] = NULL;
waitThreadCount --;
</span>
}
else
break;
}
else if(result = WAIT_OBJECT_0 + waitThreadCount)
{
//TRACE("消息\n");
PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
上述红色部分有问题,这里应该重新整理handle数组,确保数组中无间隙。


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: