SYSTEM PROGRAMMING

Event ( Auto-Reset) 모드와 ( Manual-Reset) 모드

뉴암스테르담 2015. 8. 5. 21:44
Event ( Auto-Reset) 모드와 ( Manual-Reset) 모드  시스템프로그래밍 

2013.04.16. 23:13  수정  삭제

복사http://blog.naver.com/pwk0810/40187238449

전용뷰어 보기

 

Auto-Reset  Mode

 

  • 신호 받음 상태 (signaled)) 상태가 되었을때 곧바로 Non-Signaled 상태로 바뀌는 모드
  • 여러개의 쓰레드가 동시에 같은 자동 리셋 모드의 이벤트를 대기하고 있는 중에 신호 받음 상태가 될 때
    • 어떤 쓰레드들 중 실행상태가 될지는 알 수 없다. 
Manual-Reset Mode
  • 신호 받음 상태가 되었을때 자동 리셋 모드와 같이 자동으로 신호 못받음 상태로 바뀌지 않기 때문에 사용자가 ResetEvent() 함수를 호출하여 신호 못받음 상태로 바꿔줘야 한다.
  • 대기하는 여러개의 스레드가 동시에 수동 리셋 모드 이벤트를 대기 중에 신호 받음 상태가 된다면 대기하고 있던 모든 쓰레드들이 실행 상태로 바뀌게 된다.
  • Auto-Reset모드와의 차이점이다.

자동 리셋 모드와 수동 리셋 모드의 차이점이다.


CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes,   // 보안 속성
BOOL bManualReset,       // TRUE 수동 리셋  ,  FALSE 
BOOL bInitiaState,           // 이벤트 객체 초기 상태 FALSE : non-signaled
LPCTSTR lpName )


SetEvent(HANDLE hEvent) ;    // 지정된 이벤트 객체를 신호 받음 상태로 바꾸는 역할
ResetEvent(HANDLE hEvent); // 지정된 이벤트 객체를 신호 못받음 상태로 바꾸는 역할
PulseEvent(HANLDE hEvent); // 지정된 이벤트를 신호받음 상태로 바꾸었다가 곧바도 신호 못받                                          // 음 상태로 바꿈

댓글수0