이벤트 커널 개체 사용법


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
Posted by codens