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