2012-08-02 15 views
6

Jak mogę czekać na zginięcie wątku w systemie Windows? Oto, jak powinien wyglądać mój kod:Dołącz do odpowiednika w systemie Windows

main thread: 

creating thread: thread1 
waiting for thread1 to die 
//rest of the code 

Używam Win32 API.

+0

Czy to, co chcesz, co ty naprawdę chcesz? Staraj się tego w ogóle nie robić. Użyj pul wątków lub wątków dożywotnich aplikacji, które zapętlają się i nigdy nie kończą. Oczekiwanie na zakończenie wątku powinno być ostatecznością, stosowaną tylko wtedy, gdy inne podejście do projektowania nie może działać. –

Odpowiedz

20

To proste: obiekt WaitForSingleObject może blokować bieżący wątek, biorąc pod uwagę uchwyt innego wątku.

void Thread1Proc() 
{ 
    HANDLE hThread2 = CreateThread(...); 
    WaitForSingleObject(hThread2, INFINITE); 

    // by now thread #2 is over 

}