我正在尝试创建一个线程数组。在 Linux 中,我是这样做的:
pthread_t thr[MAXCONNECTIONS];
在 Windows 上,我找不到任何替代品。无论如何要创建一个数组或替代它的东西吗?
我正在尝试创建一个线程数组。在 Linux 中,我是这样做的:
pthread_t thr[MAXCONNECTIONS];
在 Windows 上,我找不到任何替代品。无论如何要创建一个数组或替代它的东西吗?
HANDLE threads[ThreadCount];
for (int i=0; i < ThreadCount; ++i)
{
threads[i] = (HANDLE)_beginthreadex( NULL, 0, &ThreadFunc, NULL, 0, &threadID );
}
I've left out some stuff but you get the jist. You have an array of HANDLE's instead of physical threads. You can then pass a HANDLE to various functions to do things on the thread.
WaitForSingleObject(threads[2], INFINITE );
假设你想创建 10 个线程
包括这个:
#include <Windows.h>
#include <process.h>
线程函数如下所示:
DWORD WINAPI thread_1(LPVOID lpParam){ /* do something */; return 0; }
数组和线程创建:
HANDLE thr[10];
thr[0] = CreateThread(NULL, 0, thread_1, NULL, NULL, NULL);
... etc for 1..9
WaitForMultipleObjects(10, thr, TRUE, INFINITE);