Из осно вного потока запущен поток А, из А него поток Б.Как проверить из Б жив ли А?Пробовал так: Код (Text): DWORD WINAPI fibre(LPVOID lParam) { HANDLE parent=(HANDLE)lParam; printf("HANDLE: %d\n",parent); printf("%X\n",WAIT_OBJECT_0); //Sleep(1000); printf("%X\n",WaitForSingleObject(parent,INFINITE)); return(0); } DWORD WINAPI thr(LPVOID lParam) { printf("HANDLE: %d\n",GetCurrentThread()); CreateThread(0,0,&fibre,(LPVOID)GetCurrentThread(),0,0); //Sleep(2000); return(0); } int _tmain(int argc, _TCHAR* argv[]) { CreateThread(0,0,&thr,0,0,0); getch(); return 0; } Но получаю WAIT_TIMEOUT вместо WAIT_OBJECT_0.Подскажите где я ошибся.
Гм переделал вот так Код (Text): DWORD WINAPI fibre(LPVOID lParam) { HANDLE parent=(HANDLE)lParam; printf("HANDLE: %d\n",parent); printf("%X\n",WAIT_OBJECT_0); //Sleep(1000); printf("%X\n",WaitForSingleObject(parent,0)); return(0); } DWORD WINAPI thr(LPVOID lParam) { HANDLE self; self=OpenThread(READ_CONTROL,false,GetCurrentThreadId()); printf("HANDLE: %d\n",self); CreateThread(0,0,&fibre,(LPVOID)self,0,0); //Sleep(2000); return(0); } int _tmain(int argc, _TCHAR* argv[]) { CreateThread(0,0,&thr,0,0,0); getch(); return 0; } теперь WAIT_FAILED =/