Recommanded Free YOUTUBE Lecture: Learning and Hacking VPC

WaitForSingleObject

지정된 객체(Object)가 시그널상태가 될때까지 혹은 비시그널 상태로 제한시간 까지 기다린다. 시그널 상태나 타임아웃 상태면 반환한다.

대기 상태를 알려주기 위해서는 WaitForSingleObjectEx함수를 사용한다. 복수의 객체를 기다리기 위해서는 WaitForMultipleObject함수를 사용한다.

사용 법

  • hHandle
기다릴 객체의 핸들을 지정한다.
  • dwMilliseconds
제한시간을 밀리초 단위로 지정한다. 제한시간이 지나면 시그널이 도착하지 않았더라도 반호나한다. 0을 지정하면 객체의 상태를 확인하고 바로 반환한다. INFINITE를 지정하면 시그널이 도착할 때까지 기다린다.

반환 값

함수가 성공하면, 아래와 같은 측정 값을 가지고 반환한다.
WAIT_ABANDONED 지정된 객체가 파기된 뮤텍스 객체다. 뮤텍스를 소유한 쓰레드가 뮤텍스 객체의 소유권을 되돌려주지 않고 종료했다. 그래서 뮤텍스 객체의 소유권이 호출한 쓰레드로 옮겨졌으며, 뮤텍스는 비시그널 상태가 되었다.
WAIT_OBJECT_0 지정한 객체에 시그널 상태다
WAIT_TIMEOUT 제한시간이 지날 때까지 시그널상태가 되지 않았다.

상세 설명

WaitForSingleObject 함수는 지정된 객체의 현새 상태를 검사한다. 객체는 제한시간 내에서 시그널상태가 될 때까지 기다린다.

WaitForSingleObject 함수는 다음의 객체를 기다린다.
  • 콘솔 입력
  • 이벤트
  • 메모리 리소스 통지
  • 뮤텍스
  • 프로세스
  • 세마포어
  • Thread(쓰레드)
  • 타이머