Zelig
03-10-2003, 15:31
Ciao ragazzi,
volevo chiedervi se potevate darmi un aiuto con questa API.
Vi descrivo brevemente quelo che faccio io e cosa mi è capitato:
Ad un dato evento creo un thread in questo modo:
WaitForSingleObject(run_job,INFINITE);
//creo il thread
DWORD ID;
run_job = CreateThread(0,0,run_job_time,gs_record,0,&ID);
la prima volta arrivato al "WaitForSingleObject" vede che l'Handle del thread è null e quindi crea e lancia il thread.
Però può capitare anzi è molto probabile che capiti che il programma debba creare altri threads ma deve aspettare che sia finito quello precedente (lo stesso), e qui mi capita che alla seconda volta che controlla "WaitForSingleObject" il se siè verificato per esempio 3 volte l'evento che deve generare il tread, appena il primo e terminato mi lancia uno di seguito all'altro i due thread rimanenti invece di lanciare uno e ed aspettare che sia finito per poi lanciare l'altro.
Sapreste dirmi perchè?
Spero di essere stato abbastanza chiaro.
Ciao Zelig
volevo chiedervi se potevate darmi un aiuto con questa API.
Vi descrivo brevemente quelo che faccio io e cosa mi è capitato:
Ad un dato evento creo un thread in questo modo:
WaitForSingleObject(run_job,INFINITE);
//creo il thread
DWORD ID;
run_job = CreateThread(0,0,run_job_time,gs_record,0,&ID);
la prima volta arrivato al "WaitForSingleObject" vede che l'Handle del thread è null e quindi crea e lancia il thread.
Però può capitare anzi è molto probabile che capiti che il programma debba creare altri threads ma deve aspettare che sia finito quello precedente (lo stesso), e qui mi capita che alla seconda volta che controlla "WaitForSingleObject" il se siè verificato per esempio 3 volte l'evento che deve generare il tread, appena il primo e terminato mi lancia uno di seguito all'altro i due thread rimanenti invece di lanciare uno e ed aspettare che sia finito per poi lanciare l'altro.
Sapreste dirmi perchè?
Spero di essere stato abbastanza chiaro.
Ciao Zelig