Uso di eventi con chiamate asincrone

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal writer sink. Lettore di origine e writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi lettore di origine e writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Spesso, quando si usano metodi chiamati in modo asincrono, è necessario interrompere un'ulteriore elaborazione dell'applicazione fino al completamento dell'elaborazione del metodo. È possibile implementare qualsiasi tecnica che si vuole gestire questa situazione. Questa sezione descrive l'uso di un evento per attendere le chiamate asincrone nel thread chiamante. Questa tecnica viene spesso usata con Windows Media Format SDK ed è illustrata in alcune delle applicazioni di esempio.

L'elenco seguente riepiloga l'uso degli eventi per attendere le chiamate asincrone.

  1. Creare un evento da usare con l'applicazione chiamando la funzione CreateEvent di Platform SDK.
  2. Quando si implementano i callback appropriati per l'applicazione, intercettare i messaggi per i quali è necessario attendere. Nella logica di gestione dei messaggi per i messaggi desiderati segnalare l'evento chiamando la funzione SetEvent di Platform SDK.
  3. Dopo che le chiamate agli eventi asincroni vengono effettuate nell'applicazione, attendere che l'evento segnali chiamando la funzione WaitForSingleObject di Platform SDK. Se si progetta un'applicazione Windows, è necessario creare un ciclo per verificare la presenza di messaggi di Windows e includere una chiamata a WaitForSingleObject nel ciclo con un breve tempo di attesa.

Utilizzo dei metodi di callback