출처 : http://anyflow.egloos.com/774760

 

커널 객체를 이용한 쓰래드 동기화(2) - 이벤트
제프리 릭터의 Programming Applications for Microsoft Windows에 담긴 내용입니다.

이벤트(Event) 커널 객체 : 커널 객체 중 가장 원시적인 객체. 사용 카운트(usage count), 자동 리셋(auto reset)-수동 리셋(manual reset) 상태 여부를 구분하는 불 값, 신호-비신호 상태 여부를 구분하는 불 값으로 구성되더라..
수동 리셋 이벤트 : 신호 상태가 되었을 때, 이벤트를 기다리던 모든 쓰래드가 스케쥴 가능 상태가 되더라..
자동 리셋 이벤트 : 신호 상태가 되었을 때, 이벤트를 기다리던 쓰래드 중 하나만 스케쥴 가능 상태가 되더라..

용도 : 쓰래드 하나가 초기 작업을 한 이후에 다른 쓰래드(들)로 하여금 나머지 작업을 하도록 신호를 보낼 경우에 사용하더라...

//이벤트 생성
HANDLE CreateEvent (
    PSECURITY_ATTRIBUTES psa,
    BOOL fManualReset,
    BOOL fInitialState,
    PCTSTR pszName);

fManualReset : 수동 리셋(TRUE)인지, 자동 리셋(FALSE)인지의 여부
fInitialState : 신호상태(TRUE)로, 비신호상태(FALSE)로 초기화되는지의 여부

HANDLE OpenEvent (
    DWORD fdwAccess,
    BOOL fInherit,
    PCTSTR pszName);

//이벤트를 신호 상태로 변경시킨다.
BOOL SetEvent ( HANDLE hEvent );

//이벤트를 비신호 상태로 변경시킨다.
BOOL ResetEvent ( HANDLE hEvent );

//SetEvent를 호출했다가 바로 ResetEvent를 호출한 것과 동일한 효과..
BOOL PulseEvent ( HANDLE hEvent );
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,