Господа. Задачка следующая: надо создать несколько совершенно одинаковых срэдов(нитей) с одним и тем же обработчиком и что бы они одновременно работали.
В данном примере они создаются, но обрабатываются по очереди есть 2 thread работает по завершении первого и так далее...
Надо что бы работали одновременно. Подскажите как сделать.
void CreateThreads()
{
HANDLE hThread0=CreateThread(0,0,MtlTimeOutThread,(HANDLE)hWait1,0,NULL);
HANDLE hThread1=CreateThread(0,0,MtlTimeOutThread,(HANDLE)hWait2,0,NULL);
HANDLE hThread2=CreateThread(0,0,MtlTimeOutThread,(HANDLE)hWait3,0,NULL);
...............
...............
}
DWORD WINAPI TimeOutThread(HANDLE lpParameter)
{
DWORD resp=WaitForSingleObject(lpParameter,MAX_WAIT_RESPONSE);
if(resp==WAIT_TIMEOUT){
...........
}
return 0;
}
24.09.03 15:28: Перенесено модератором из 'C/C++' — ПК
Здравствуйте, val_133, Вы писали:
v>Господа. Задачка следующая: надо создать несколько совершенно одинаковых срэдов(нитей) с одним и тем же обработчиком и что бы они одновременно работали.
v>В данном примере они создаются, но обрабатываются по очереди есть 2 thread работает по завершении первого и так далее...
v>Надо что бы работали одновременно. Подскажите как сделать.
v>v>void CreateThreads()
v>{
v> HANDLE hThread0=CreateThread(0,0,MtlTimeOutThread,(HANDLE)hWait1,0,NULL);
v> HANDLE hThread1=CreateThread(0,0,MtlTimeOutThread,(HANDLE)hWait2,0,NULL);
v> HANDLE hThread2=CreateThread(0,0,MtlTimeOutThread,(HANDLE)hWait3,0,NULL);
v> ...............
v> ...............
v>}
v>DWORD WINAPI TimeOutThread(HANDLE lpParameter)
v>{
v> DWORD resp=WaitForSingleObject(lpParameter,MAX_WAIT_RESPONSE);
v> if(resp==WAIT_TIMEOUT){
v> ...........
v> }
v> return 0;
v>}
v>
DWORD WINAPI MtlTimeOutThread(HANDLE lpParameter)
{
DWORD resp=WaitForSingleObject(lpParameter,MAX_WAIT_RESPONSE);
if(resp==WAIT_TIMEOUT){
while (1)
{
printf("%d\n",(DWORD)lpParameter);
Sleep(1);
}
}
return 0;
}
Работают очень даже параллельно.