Classe CAMSchedule
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, 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.]
La CAMSchedule
classe implémente un planificateur pour les horloges de référence.
Méthodes publiques | Description |
---|---|
CAMSchedule | Méthode du constructeur. |
~CAMSchedule | Méthode de destructeur. Virtuel. |
GetAdviseCount | Récupère le nombre de demandes d’avis en attente. |
GetNextAdviseTime | Récupère l’heure de la demande d’avis suivante. |
AddAdvisePacket | Ajoute une demande d’avis à la liste des demandes en attente. |
Annuler lavise | Supprime une demande d’avis. |
Conseiller | Répartit toutes les demandes qui sont planifiées pour une heure spécifiée ou avant. |
GetEvent | Récupère un handle d’événement, qui est utilisé pour signaler un changement à l’heure d’avertissement suivante. |
Notes
Cet objet d’assistance gère une liste de demandes d’avis pour une horloge de référence. La classe CBaseReferenceClock l’utilise pour planifier les demandes d’avis. Les horloges utilisent cet objet de la manière suivante :
- L’horloge crée un thread de travail pour gérer la planification.
- Le thread de travail appelle la méthode CAMSchedule::GetEvent pour récupérer un handle d’événement à partir du planificateur. Il attend cet événement, initialement avec un délai d’attente infini.
- Pour planifier une nouvelle demande d’avis, l’horloge appelle la méthode CAMSchedule::AddAdvisePacket . Une demande d’avis peut être ponctuelle ou périodique. Le planificateur conserve la liste des requêtes dans l’ordre du temps.
- Si une requête est ajoutée au début de la liste, le planificateur signale l’événement. (La liste étant vide au début, la première requête est garantie pour signaler l’événement.)
- Lorsque l’événement est signalé, le thread de travail appelle la méthode CAMSchedule::Advise , en spécifiant l’heure de référence actuelle. Si des demandes en attente ont expiré, le planificateur les distribue.
- La méthode Advise retourne l’heure de la requête suivante. Le thread de travail utilise cette valeur pour calculer une nouvelle valeur de délai d’attente.
- Les étapes 2 6 se répètent indéfiniment.
- Pour arrêter le thread de travail, l’horloge définit un indicateur interne et signale l’événement.
À l’étape 2, l’événement est signalé ou le délai d’attente est expiré. Si l’événement est signalé, cela signifie qu’une nouvelle demande a été ajoutée à l’avant de la liste. Le thread de travail doit calculer une nouvelle valeur de délai d’attente. D’autre part, si l’attente expire, cela signifie qu’une demande d’avis est arrivée à échéance et doit être envoyée. L’appel à Conseiller à l’étape 5 gère les deux cas.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|