DWORD WINAPI WaitForSingleObject(
__in HANDLE hHandle, //오브젝트 핸들
__in DWORD dwMilliseconds // 타임아웃 시간
);
쉽게말해 어떤 오브젝트가 시그널 상태가 되거나 타임아웃이 되면 제어를 돌려준다.
이게 무슨말이냐면 WaitForSingleObject는 지정한 오브젝트의 현재 상태를 채크를 한다.
그 오브젝트가 비시그널 상태일 때는 호출한 스레드는 대기상태가 되고
오브젝트가 시그널 상태가 되거나 타임아웃 시간이 경과하는 것을 기다린다.
파라미터
hHandle
오브젝트의 핸들을 지정한다.
핸들을 지정할 수 있는 함수의 해설을 참조
핸들이 대기 상태로 있을때에는 그 핸들을 없앴을 경우 그 함수의 동작은 정의되지않는다.
(If this handle is closed while the wait is still pending, the function's behavior is undefined. : 동작을 안한다는 이야기인가? -.-)
Windows NT/2000:이 핸들에 SYNCHRONIZE 억세스 권을 할당해야만 된다. 상세한 내용은 MSDN 라이브러리의 「Standard Access Rights」를 참조
dwMilliseconds
타임아웃 시간을 밀리초(ms)단위로 지정한다.
타임아웃 시간을 경과하면 오브젝트가 비시그널 상태에 있더라도 제어권을 돌려준다.(WaitForSingleObject함수에서 더 이상 대기하지않는다.)
0으로 지정하면 이 함수는 지정된 오브젝트의 상태를 확인하고 바로 다음 행을 실행한다.
INFINITE를 지정하면 오브젝트가 시그널 상태가 될때까지 기다린다.
대강적으로 어떤 스레드를 불러오고 그 스레드가 종료될때까지 기다리는것? 인 것 같다.
'Programming > WinAPI' 카테고리의 다른 글
악성코드에 자주 사용되는 함수목록 (0) | 2017.03.04 |
---|---|
WinAPI WinMain과 윈도우 클래스 (0) | 2017.02.08 |
WinAPI 핸들에 대한 이해 (0) | 2017.02.08 |
API란? (0) | 2017.02.08 |
WinAPI 윈도우의 특징 (0) | 2017.02.08 |