Utilisation d’événements avec des appels asynchrones
[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par le lecteur source et l’enregistreurrécepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
Souvent, lorsque vous utilisez des méthodes appelées de manière asynchrone, vous souhaiterez arrêter le traitement ultérieur de votre application jusqu’à ce que le traitement de la méthode soit terminé. Vous pouvez implémenter n’importe quelle technique de votre choix pour gérer cette situation. Cette section décrit l’utilisation d’un événement pour attendre des appels asynchrones dans le thread appelant. Cette technique est fréquemment utilisée avec le Kit de développement logiciel (SDK) au format Windows Media et est illustrée dans certains exemples d’applications.
La liste suivante récapitule l’utilisation des événements pour attendre les appels asynchrones.
- Créez un événement à utiliser avec votre application en appelant la fonction CreateEvent du Kit de développement logiciel (SDK) platform.
- Lorsque vous implémentez les rappels appropriés pour votre application, interceptez les messages pour lesquels vous devez attendre. Dans la logique de gestion des messages pour les messages souhaités, signalez l’événement en appelant la fonction SetEvent du Kit de développement logiciel (SDK) platform.
- Une fois que des appels à des événements asynchrones ont été effectués dans votre application, attendez que l’événement signale en appelant la fonction WaitForSingleObject du Kit de développement logiciel (SDK) platform. Si vous concevez une application Windows, vous devez créer une boucle pour case activée pour les messages Windows et inclure un appel à WaitForSingleObject dans la boucle avec un temps d’attente court.
Rubriques connexes