Partilhar via


Usando eventos com chamadas assíncronas

[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. O do Source Reader e o do Sink Writer foram otimizados para o Windows 10 e o Windows 11. A Microsoft recomenda vivamente que o novo código utilize o Source Reader e o Sink Writer em vez do Windows Media Format 11 SDK, sempre que 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.]

Freqüentemente, ao usar métodos que são chamados de forma assíncrona, você desejará interromper o processamento adicional do seu aplicativo até que o método conclua o processamento. Você pode implementar qualquer técnica que quiser para lidar com essa situação. Esta seção descreve o uso de um evento para aguardar chamadas assíncronas no thread de chamada. Essa técnica é freqüentemente usada com o SDK do Windows Media Format e é demonstrada em alguns dos aplicativos de exemplo.

A lista a seguir resume o uso de eventos para aguardar chamadas assíncronas.

  1. Crie um evento para uso com seu aplicativo chamando a função CreateEvent do Platform SDK.
  2. Ao implementar os retornos de chamada apropriados para a sua aplicação, capture as mensagens pelas quais precisa esperar. Na lógica de manipulação de mensagens para as mensagens desejadas, sinalize o evento chamando a função SetEvent do Platform SDK.
  3. Depois que as chamadas para eventos assíncronos forem feitas em seu aplicativo, aguarde o sinal do evento chamando a função WaitForSingleObject do Platform SDK. Se estiveres a criar uma aplicação para Windows, deverás criar um loop para verificar mensagens do Windows e incluir uma chamada para WaitForSingleObject na iteração do loop com um curto tempo de espera.

Usando os métodos de retorno de chamada