Compartilhar via


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.

  1. Crie um evento para uso com seu aplicativo chamando a função CreateEvent do SDK da Plataforma.
  2. 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.
  3. 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.

Usando os métodos de retorno de chamada