Поделиться через


Использование событий с асинхронными вызовами

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменен средством чтения исходного кода и модуля записи приемника. Средство чтения исходного кода и модуль записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код по возможности использовал средство чтения исходного кода и модуль записи приемника вместо пакета SDK для Windows Media Format 11. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Часто при использовании методов, которые вызываются асинхронно, требуется остановить дальнейшую обработку приложения до завершения обработки метода. Вы можете реализовать любой способ обработки этой ситуации. В этом разделе описывается использование события для ожидания асинхронных вызовов в вызывающем потоке. Этот метод часто используется с пакетом SDK для формата Windows Media и демонстрируется в некоторых примерах приложений.

В следующем списке приведены сведения об использовании событий для ожидания асинхронных вызовов.

  1. Создайте событие для использования с приложением, вызвав функцию CreateEvent пакета SDK для платформы.
  2. При реализации соответствующих обратных вызовов для приложения перехватывайте сообщения, для которых необходимо дождаться. В логике обработки сообщений для нужных сообщений сообщите о событии, вызвав функцию SetEvent пакета SDK платформы.
  3. После выполнения вызовов асинхронных событий в приложении дождитесь сигнала события путем вызова функции WaitForSingleObject пакета SDK для платформы. При проектировании приложения Windows следует создать цикл для проверка сообщений Windows и включить вызов WaitForSingleObject в цикл с коротким временем ожидания.

Использование методов обратного вызова