다음을 통해 공유


이벤트 개체(동기화)

이벤트 개체SetEvent 함수를 사용하여 상태를 명시적으로 신호로 설정할 수 있는 동기화 개체입니다. 다음은 두 가지 유형의 이벤트 개체입니다.

개체 설명
수동 재설정 이벤트 ResetEvent 함수에 의해 명시적으로 서명되지 않은 상태로 다시 설정될 때까지 상태가 신호로 유지되는 이벤트 개체입니다. 신호가 전송되는 동안 대기 함수 중 하나에서 동일한 이벤트 개체를 지정하는 대기 스레드 또는 스레드 수를 해제할 수 있습니다.
자동 재설정 이벤트 단일 대기 스레드가 해제될 때까지 상태가 신호로 유지되는 이벤트 개체이며, 이때 시스템은 자동으로 상태를 서명되지 않은 상태로 설정합니다. 대기 스레드가 없으면 이벤트 개체의 상태는 신호를 받은 것으로 유지됩니다. 둘 이상의 스레드가 대기 중인 경우 대기 스레드가 선택됩니다. FIFO(선점) 순서를 가정하지 마세요. 커널 모드 APC와 같은 외부 이벤트는 대기 순서를 변경할 수 있습니다.

 

이벤트 개체는 특정 이벤트가 발생했음을 나타내는 신호를 스레드로 보내는 데 유용합니다. 예를 들어 겹치는 입력 및 출력에서 시스템은 겹치는 작업이 완료되면 지정된 이벤트 개체를 신호 상태로 설정합니다. 단일 스레드는 여러 개의 동시 겹치는 작업에서 다른 이벤트 개체를 지정한 다음, 다중 개체 대기 함수 중 하나를 사용하여 이벤트 개체 중 하나의 상태가 신호를 받을 때까지 기다릴 수 있습니다.

스레드는 CreateEvent 또는 CreateEventEx 함수를 사용하여 이벤트 개체를 만듭니다. 만들기 스레드는 개체의 초기 상태와 개체가 수동 재설정 또는 자동 재설정 이벤트 개체인지 여부를 지정합니다. 만들기 스레드는 이벤트 개체의 이름을 지정할 수도 있습니다. 다른 프로세스의 스레드는 OpenEvent 함수 호출에서 해당 이름을 지정하여 기존 이벤트 개체에 대한 핸들을 열 수 있습니다. 뮤텍스, 이벤트, 세마포 및 타이머 개체의 이름에 대한 자세한 내용은 Interprocess 동기화를 참조하세요.

이벤트 개체 사용