WaitForSingleObject(
HANDLE hHandle, DWORD dwMilliseconds)
첫번째 파라미터인 hHandle을 통해 해당 오브젝트 상태를 체크해준다.
그 오브젝트가 비시그널 상태일 때 호출한 thread를 대기상태로 만들어주며, 시그널 상태가 되거나 두번째 파라미터 dwMilliseconds의 시간이 경과하면 return 된다.
- dwMilliseconds에 INFINITY를 설정하면 무한대로 대기한다. (조심해야함)
- 파기된 Mutex 오브젝트거나 누군가가 Mutex를 release하지 않고 종료한 경우 WAIT_ABANDONED가 return 된다.
- 지정한 오브젝트를 기다리다가 timeout이 된 경우WAIT_TIMEOUT 이 return 된다.
- WaitForSingleObject 함수 자체가 실패했을 경우 WAIT_FAILED가 return 된다. (GetLastError 확인)
- 지정한 오브젝트를 시그널 상태로 만드는 경우 (그냥 성공했을 경우) WAIT_OBJECT_0 (=0 이다.) 가 return 된다.
이 함수는 다음의 오브젝트들을 기다릴 수 있다.
- 변경 통지(Change notification)
- 콘솔 입력(Console input)
- 이벤트(Event)
- Memory resource notification
- 뮤텍스(Mutex)
- 프로세스(Process)
- 세마포어(Semaphore)
- 스레드(Thread)
- 대기 가능한 타이머(Waitable timer)
댓글 없음:
댓글 쓰기