블로그 이미지
vicjung

프로그래밍이나 컴퓨터 관련 위주 블로그

Rss feed Tistory
Programming 2009. 7. 28. 11:37

WaitForMultipleObjects

WaitForMultipleObjects

뜻 그대로 여러개의 object handle가 Signaled 상태나 일정 시간이 지날 때까지 기다리는 함수.

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

인자:

  - nCount : lpHandles에 들어있는 object handle의 갯수. 최대 MAXIMUM_WAIT_OBJECTS (64개)만을 지정할 수 있다.
  - lpHandles : 함수가 기다릴 object handle의 배열. 이 배열은 서로 다른 종류의 obejct의 handle들이 들어갈 수 있다.
  - bWaitAll : TRUE이면 lpHandles의 모든 handle의 signal을 기다리고, TRUE이면 하나라도 signal이 오면 리턴된다. 후자의 경우 리턴값은 signal을 준 object가 된다.
  - dwMilliSeconds : bWaitAll에 의한 조건이 만족되지 않더라도 이 값에 의한 시간이 흐르면 함수는 리턴된다. 0이라면 즉시 리턴되고, INFINITE(0xFFFFFFFF)이면 무한정 기다린다.

리턴값:

리턴값 의미 참조
WAIT_OBJECT_0 ~ (WAIT_OBJECT_0)+(nCount-1) bWaitAll이 true면 전체 오브젝트가 signal상태가 됨
아니면 (결과값-WAIT_OBJECT_0)번째 object가 signal 상태가 됨
WAIT_OBJECT_0 => 0x00000000
(WAIT_ABANDONED) ~ (WAIT_ABANDONED + nCount - 1) 전오브젝트를 기다리고 있는 경우에는, 모든 오브젝트가 시그널 상태가 되어, 그 중에 방폐되었기 때문에 시그널 상태가 된 뮤텍스가 포함되어 있는 것을 나타냅니다.임의의 오브젝트를 기다리고 있는 경우, (반환값 - WAIT_ABANDONED) (은)는, 방폐되었기 때문에 시그널 상태가 된 뮤텍스 오브젝트의 핸들의 pHandles 배열내에서의 인덱스를 나타냅니다. WAIT_ABANDONED => 0x00000080
WAIT_TIMEOUT

타임 아웃 시간이 경과한 것을 나타내 보입니다.

WAIT_TIMEOUT => 0x00000102
WAIT_FAILED 에러가 발생한 것을 나타내 보입니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다. WAIT_FAILED => 0xFFFFFFFF

기타:

사용할수 있는 핸들 오브젝트
•변경 통지(Change notification)
•콘솔 입력(Console input)
•이벤트(Event)
•Memory resource notification
•뮤텍스(Mutex)
•프로세스(Process)
•세마포어(Semaphore)
•스레드(Thread)
•대기 가능한 타이머(Waitable timer)

참조: Signaled 상태란?

기타 참조: MSDN 라이브러리의「Synchronization Objects」

Tistory 태그:

,
카테고리 없음 2009. 7. 28. 11:00

블로그 live writer 테스트

글이 잘 올라오는지 테스트중 ㅋㅋ

,
TOTAL TODAY