createevent 예제

Skrevs fredagen den 2 augusti, 2019

다음 예제에서는 이벤트 개체를 사용하여 자식 스레드가 이벤트를 신호하는 방법을 보여 주 스레드에 대한 완료를 알려줍니다. 여러 스레드를 기다리는 주 스레드는 추가 실행하기 전에 모든 스레드가 완료되도록 합니다. 응용 프로그램은 여러 상황에서 이벤트 개체를 사용하여 대기 스레드에 이벤트 발생을 알릴 수 있습니다. 예를 들어 파일, 명명된 파이프 및 통신 장치에서 중첩된 I/O 작업은 이벤트 개체를 사용하여 완료를 알리는 작업을 사용합니다. 중첩된 I/O 작업에서 이벤트 개체의 사용에 대한 자세한 내용은 동기화 및 겹친 입력 및 출력을 참조하십시오. 다음 예제에서는 CreateEvent() 함수를 사용하여 두 개의 이벤트 개체와 CreateThread() 함수를 만들어 스레드를 만듭니다. 그런 다음 WaitForMultipleObjects() 함수를 사용하여 스레드가 SetEvent() 함수를 사용하여 신호를 받는 개체 중 하나의 상태를 설정할 때까지 기다립니다. /* 다음 예제에서는 CreateEvent() 함수를 사용하여 두 개의 이벤트 개체와 CreateThread() 함수를 사용하여 마스터 스레드가 쓰는 동안 여러 스레드가 공유 메모리 버퍼에서 읽지 못하도록 하는 이벤트 개체를 사용합니다. 버퍼. 먼저 마스터 스레드는 CreateEvent 함수를 사용하여 초기 상태가 신호가 없는 수동 재설정 이벤트 개체를 만듭니다. 그런 다음 여러 판독기 스레드를 만듭니다.

마스터 스레드는 쓰기 작업을 수행한 다음 쓰기가 완료되면 이벤트 개체를 신호 상태로 설정합니다. 위의 스레드 함수 중 하나의 예입니다. 이것은 기본적으로 이미 만든 이벤트를 열고 5 초 동안 자고 후 수동으로 재설정합니다. Project -> your_project_name 속성 -> 구성 속성 -> C/C++ -> 고급 -> 다음과 같이 컴파일: C 코드(/TC)로 컴파일됨: Windows 프로세스 및 스레드 관련 함수 사용 lpName이 기존 명명된 이벤트 개체의 이름과 일치하는 경우 함수는 EVENT_ALL_ACCESS 액세스 권한을 요청합니다. 이 경우 bManualReset 및 bInitialState 매개 변수는 만들기 프로세스에 의해 이미 설정되었기 때문에 무시됩니다. lpEventAttributes 매개 변수가 NULL이 아닌 경우 핸들을 상속할 수 있는지 여부를 결정하지만 보안 설명자 멤버는 무시됩니다. 각각의 메서드로 세 개의 별도 스레드가 시작됩니다. 이러한 스레드 함수는 실행 시 5초, 10초, 15초 동안 절전 모드로 작업 시뮬레이션합니다. 이벤트 핸들은 Array_Of_Events_Handles 배열에 저장되므로 주 스레드가 이러한 핸들에서 기다릴 수 있습니다.

Teater Kapija
Örmölla 321
SE-274 56 Abbekås

+46 (0)411 533 772
+46 (0)70 740 17 61

info@kapija.com
www.kapija.com