📄 waitthread.cpp
字号:
#include "stdafx.h"#include "WaitThread.h"struct WaitThreadArg{ int n; HANDLE *pHandle;};void WaitThreadFunction(WaitThreadArg *arg){ WaitForMultipleObjects(arg->n, arg->pHandle, TRUE, INFINITE); delete arg;}void WaitForLotsOfObjects(int nHandles, HANDLE *pHandle){ if (nHandles <= MAXIMUM_WAIT_OBJECTS) WaitForMultipleObjects(nHandles, pHandle, TRUE, INFINITE); else { int num = (nHandles / MAXIMUM_WAIT_OBJECTS) + 1; HANDLE *hThread = new HANDLE[num]; for (int i=0; i<num; i++) { WaitThreadArg *arg = new WaitThreadArg; if (i == num-1) arg->n = nHandles % MAXIMUM_WAIT_OBJECTS; else arg->n = MAXIMUM_WAIT_OBJECTS; arg->pHandle = &pHandle[i*MAXIMUM_WAIT_OBJECTS]; DWORD dwThreadID; hThread[i] = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WaitThreadFunction, arg, 0, &dwThreadID); } WaitForMultipleObjects(num, hThread, TRUE, INFINITE); for (i=0; i<num; i++) CloseHandle(hThread[i]); delete hThread; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -