이벤트 커널 개체 사용법
CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes,
BOOL bManualReset, //'TRUE'로 설정할 경우, ResetEvent()를 수동으로 호출해 줘야 한다
BOOL bInitialState,
LPCTSTR lpName //주의! 같은 이름의 이벤트는 모든 프로세스가 사용할수 있다.
// NULL 로 설정하면 OpenEvent를 할수 없다. 생성한 핸들로만 사용
);
CloseEvent() : 이벤트 닫기
OpenEvent() : 이벤트 열기
- CloseHandle() 로 닫는다.
SetEvent() : 이벤트를 발생 시킨다,(signaled 상태로 만듬)
ResetEvent() : nonsignaled 상태로 만듬,
- CreateEvent()에서 2번째 인자인 bManualReset를 TRUE로 설정한 경우에 사용
PulseEvent() : 이벤트를 발생 시키고, 자동으로 시그널을 없앤다
- 권장되지 않는 기능, asynchronous procedure call (APC) 와 호환성, 신뢰성에 문제 있음
* 신호 대기(wait for signal)
WaitForSingleObject
WaitForMultipleObjects
- 끝에 Ex가 붙으면 bAlertable 설정이 가능하다
//
샘플 코드 소스
//=============================================
// 참고
Introduction to Multi-threaded Code
http://www.codeproject.com/Articles/438/Introduction-to-Multi-threaded-Code
// WaitForMultipleObjects() 사용 예제
Thread Synchronization Using the Win32 Event Object
http://www.codeproject.com/Articles/277050/Thread-Synchronization-using-Win-Event-Object
Halt! Who Goes There? - 여러 대기 함수 사용 예제
http://www.codeproject.com/Articles/5018/Halt-Who-Goes-There
Using Event Objects
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686915%28v=vs.85%29.aspx
http://wolfsi.egloos.com/viewer/2301987
'Code > Desktop' 카테고리의 다른 글
define 전처리기 MACRO 사용법 (0) | 2014.03.22 |
---|---|
UINT64 -> double 형변환 (0) | 2014.03.22 |
샘플 추적용 영상 다운로드 사이트 (0) | 2014.03.11 |
MatLab 컴파일 관련 에러 해결 (0) | 2014.03.11 |
[OpenCV]외곽선 검출 (0) | 2014.03.09 |