Rodrigo Strauss :: Blog
E o bug é....
O bug está no uso incorreto da função WaitForMultipleObjects:
DWORD WINAPI WaitForMultipleObjects( __in DWORD nCount, __in const HANDLE *lpHandles, __in BOOL bWaitAll, __in DWORD dwMilliseconds );
Parameters:
nCount [in]:The number of object handles in the array pointed to by lpHandles. The maximum number of object handles is MAXIMUM_WAIT_OBJECTS.
Vendo o valor de MAXIMUM_WAIT_OBJECTS em winnt.h:
#define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of wait objects
E no meu post:
static const DWORD threadCount = 100; ... // // esperando TODAS as threads retornarem // |___________________________________ // | // v // WaitForMultipleObjects(threadCount, &threads[0], TRUE, INFINITE);
Não podemos esperar 100 threads de uma vez só. Agora sabemos que o programa não espera todas as threads terminarem antes de mostrar o resultado.
Em 24/09/2008 01:23, por Rodrigo Strauss





Um gancho perfeito para a mesma história, só que em Kernel Mode.
http://www.driverentry.com.br/blog/2008/02/kewaitformultiple...
[]s,
Fernando.