Post List

WaitForSingleObject


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)

댓글 없음:

댓글 쓰기