Thread가 WaitForSingleObject()로 기다리다가, Event가 도착하면,
해당 기능을 동작하고 다시 WaitForSingleObject()로 기다리게 되어 있는데요..
Thread 외부에서 해당 Thread가 WaitForSingleObject()에서 기다리고 있는 지,..
아니면 어떤 동작을 하고 있는 지를 파악할 수 있나요?
코드로 본다면
////////////////////////////////////////////////////////////////////
// Thread body 부분
TThread::Execute()
{
....
while ( 1 ) {
..
WaitForSingleObject();
...
// Do Something
...
}
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// 사용할 때
////////////////////////////////////////////////////////////////////
TThread *pThread = new TThread();
if ( pThread->IsWorking() ) { // 일반 동작 중(기다리는 상태가 아님
// Do Something
} else { // WaitForSingleObject()에서 기다리는 상태
// Do Something
}
핵심은 pThread->IsWorking()함수를 쓸 수 있느냐 인 것입니다.
아니면 따로 만들어야 하나요?
|