Problemas de programación WIN32 en lenguaje C.
2 HANDLE hThread = (HANDLE)malloc(sizeof( MANGO)) ; Cambiar a MANGO hThread[10]. No se requiere asignación; por lo tanto, free(hThread); eliminado más tarde;
3. El parámetro de error de la función CreateThread debe ser
hThread[j] = CreateThread(NULL,0,( LPTHREAD_START_ROUTINE) ThreadFunc, (LPVOID)testststudy (LPVOID)teststruct,0,NULL); El tercer parámetro es el puntero a la función del hilo y el cuarto parámetro es el parámetro de la función del hilo pasado;
4. En Cerrar el identificador después de CreateThreadCloseHandle(hThread[j]); No es necesario lo siguiente
for(;j & gt;=0;j--)
{
CloseHandle(hThread[j]);
}
5. Inmediatamente después de Sleep(1), duerma durante 1 milisegundo para que pueda acceder a la función de subproceso. ThreadFunc;
6. printf("¡TEST1 Todo el hilo ha finalizado\n"!) ;
printf("TEST2 Finalizado\n"!) ;
¡Por favor ponga el signo de exclamación entre comillas!
7. MyFunc(teststruct[j]); cambiado a MyFunc(teststruct); --------------------------
¿El número de TESTSTRUCT está determinado por su bucle? El número de TESTSTRUCT está determinado por su bucle, porque el identificador del subproceso hThread es una matriz
Solo hay un TESTSTRUCT por función de subproceso, y su TESTSTRUCT se reasignará después de j++
Entonces No necesitas TESTSTRUCT[j]
De todos modos, se puede modificar en mi computadora
MyFunc(teststruct cambiado a MyFunc(teststruct no array
);El número de TESTSTRUCT está determinado por su bucle.