考虑下面的代码:
for (int i = 0; i < thread_number; i ++)
hThreadArray[i] = CreateThread(
0,
0,
single_thread_function_name,
(LPVOID)i,
0,
&dwThreadIdArray[i]);
WaitForMultipleObjects(thread_number, hThreadArray, TRUE, INFINITE);
它在 32 位平台上正常工作,但在 64 位平台上崩溃。
崩溃发生在 WaitForMultipleObjects 函数中。
有人知道我在做什么错吗?
编辑: hThreadArray 被声明为:
HANDLE* hThreadArray;
hThreadArray = (HANDLE*) malloc (thread_number * sizeof(HANDLE));
single_thread_function_name 为:
DWORD WINAPI single_thread_function_name( LPVOID lpParam ){
.....
return 0;
}