DWORD SyncWaitForMultipleObjs(HANDLE * handles, int count) { int waitingThreadsCount = count; int index = 0; DWORD res = 0; while (waitingThreadsCount >= MAXIMUM_WAIT_OBJECTS) { res = WaitForMultipleObjects(MAXIMUM_WAIT_OBJECTS, &handles[index], TRUE, INFINITE); if (res == WAIT_TIMEOUT || res == WAIT_FAILED) { puts("1. Wait Failed."); return res; } waitingThreadsCount -= MAXIMUM_WAIT_OBJECTS; index += MAXIMUM_WAIT_OBJECTS; } if (waitingThreadsCount > 0) { res = WaitForMultipleObjects(waitingThreadsCount, &handles[index], TRUE, INFINITE); if (res == WAIT_TIMEOUT || res == WAIT_FAILED) { puts("2. Wait Failed."); } } return res; }
突破WaitForMultipleObject等待限制
猜你喜欢
转载自blog.csdn.net/lasuerte/article/details/78393024
今日推荐
周排行