waitthread.cpp

来自「MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程」· C++ 代码 · 共 41 行

CPP
41
字号
#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){	int i;	if (nHandles <= MAXIMUM_WAIT_OBJECTS)		WaitForMultipleObjects(nHandles, pHandle, TRUE, INFINITE);	else	{		int num = (nHandles / MAXIMUM_WAIT_OBJECTS) + 1;		HANDLE *hThread = new HANDLE[num];		for (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 + =
减小字号Ctrl + -
显示快捷键?