SYSTEM PROGRAMMING
Event ( Auto-Reset) 모드와 ( Manual-Reset) 모드
뉴암스테르담
2015. 8. 5. 21:44
Event ( Auto-Reset) 모드와 ( Manual-Reset) 모드
|
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); // 지정된 이벤트를 신호받음 상태로 바꾸었다가 곧바도 신호 못받 // 음 상태로 바꿈