考虑下面的代码:WaitForMultipleObjects的崩溃
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;
}
你可以发布'hThreadArray'声明和'single_thread_function_name()'代码吗? – hmjd 2012-04-16 11:03:49
当然,我编辑过。 – Aslan986 2012-04-16 11:08:34
您是否在hThreadArray中存储了任何内容,或者是否将其保留为未初始化? – bmargulies 2012-04-16 11:09:38