Usando eventos com chamadas assíncronas
[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Frequentemente, ao usar métodos chamados de forma assíncrona, você desejará interromper o processamento adicional do aplicativo até que o método conclua o processamento. Você pode implementar qualquer técnica que desejar para lidar com essa situação. Esta seção descreve como usar um evento para aguardar chamadas assíncronas no thread de chamada. Essa técnica é frequentemente usada com o SDK de Formato de Mídia do Windows e é demonstrada em alguns dos aplicativos de exemplo.
A lista a seguir resume o uso de eventos para aguardar chamadas assíncronas.
- Crie um evento para uso com seu aplicativo chamando a função CreateEvent do SDK da Plataforma.
- Ao implementar os retornos de chamada apropriados para seu aplicativo, aprisione as mensagens para as quais você precisa aguardar. Na lógica de tratamento de mensagens para as mensagens desejadas, sinalize o evento chamando a função SetEvent do SDK da Plataforma.
- Depois que chamadas para eventos assíncronos forem feitas em seu aplicativo, aguarde o evento sinalizar chamando a função WaitForSingleObject do SDK da Plataforma. Se você estiver criando um aplicativo do Windows, deverá criar um loop para marcar para mensagens do Windows e incluir uma chamada para WaitForSingleObject no loop com um curto tempo de espera.
Tópicos relacionados