프로그래밍/MFC , WinAPI

WaitForMultipleObjects 함수란?

친루엄 2018. 4. 9. 19:15

DWORD WINAPI WaitForMultipleObjects( _In_       DWORD  nCount, _In_ const HANDLE *lpHandles, _In_       BOOL   bWaitAll, _In_       DWORD  dwMilliseconds );

 

상태를 확인하고자하는 커널 오브젝트가 둘 이상이고 , 이들의 핸들이 배열로 묶여 있을때 활용된다.

 

nCount

  배열에 저장되어 있는 핸들 개수를 전달한다.

lpHandles

  핸들을 저장하고 있는 배열의 주소 정보를 전달한다.

bWaitAll

  관찰 대상이 모두 Signaled 상태가 되기를 기다리고자하는지 아니면 하나라도 Signaled 상태가 되면

  반환할것인지 결정한다.

dwMilliseconds

  커널오브젝트가 Singaled상태가 될때까지 기다릴 수 있는 최대 시간입니다.

  만약 상수 INFINITE를 인자로 전달하면 커널 오브젝트가 Signaled 상태가 될 때까지

  반환하지 않고 무한정 기다립니다.

 

반환값

WAIT_OBJECT_0 ~ ( WAIT_OBJECT_0 + nCount- 1)

   커널 오브젝트가 Signaled 상태가 되었을 때 반환되는 값

WAIT_TIMEOUT  

  커널 오브젝트가 Signaled 상태가 되지 않고, dwMilliseconds 로 설정한 시간이 넘음

WAIT_ABANDONED_0 ~ ( WAIT_ABANDONED_0 + nCount - 1)

 소유관계와 관련하여 함수가 정상적이지 못한 오류 발생에 의해서 반환되는경우.