다음을 통해 공유


비동기 호출과 함께 이벤트 사용

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 작성기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

비동기적으로 호출되는 메서드를 사용하는 경우 메서드가 처리를 완료할 때까지 애플리케이션의 추가 처리를 중지하는 경우가 많습니다. 이 상황을 처리하려는 모든 기술을 구현할 수 있습니다. 이 섹션에서는 이벤트를 사용하여 호출 스레드에서 비동기 호출을 기다리는 방법을 설명합니다. 이 기술은 Windows Media Format SDK에서 자주 사용되며 일부 샘플 애플리케이션에서 설명합니다.

다음 목록에서는 비동기 호출을 기다리는 이벤트의 사용을 요약합니다.

  1. 플랫폼 SDK의 CreateEvent 함수를 호출하여 애플리케이션에서 사용할 이벤트를 만듭니다.
  2. 애플리케이션에 대한 적절한 콜백을 구현할 때 기다려야 하는 메시지를 트래핑합니다. 원하는 메시지에 대한 메시지 처리 논리에서 플랫폼 SDK의 SetEvent 함수를 호출하여 이벤트에 신호를 보냅니다.
  3. 애플리케이션에서 비동기 이벤트를 호출한 후 Platform SDK의 WaitForSingleObject 함수를 호출하여 이벤트가 신호를 받을 때까지 기다립니다. Windows 애플리케이션을 디자인하는 경우 Windows 메시지를 검사 짧은 대기 시간으로 루프에 WaitForSingleObject 호출을 포함하는 루프를 만들어야 합니다.

콜백 메서드 사용