WaitForSingleObject

Bogoomi·2023년 8월 21일
0

Thread가 완전히 종료된 것을 확신해야 하는 경우에는

if ( ::WaitForSingleObject(pThread->m_hThread, INFINITE) )

{

   // 이곳은쓰레드가확실히종료된상태임

}

와 같이 하면 된다. Thread가 죽어 버려서 먹통이 되는 경우까지 대비하려면

DWORD result;

result = ::WaitForSingleObject(pThread->m_hThread, 1000); // 1초기다림

if ( result == WAIT_OBJECT_0 )

{

   // 이곳은쓰레드가확실히종료된상태임

}

else if ( result == WAIT_TIMEOUT )

{

   // 1초가지나도쓰레드가종료되지않은상태

}

이 방법을 사용해야 한다. 어떤 Thread가 현재 실행 중인지 알고 싶을 때는

if ( ::WaitForSingleObject(pThread->m_hThread, 0 ) == WAIT_TIMEOUT )

{

   // pThread 실행중

}

else

{

   // pThread가실행중이아님

}

profile
개에에에바알

0개의 댓글

Powered by GraphCDN, the GraphQL CDN