Partager via


CMultiLock, classe

Représente le mécanisme de contrôle d'accès utilisé pour accéder aux ressources dans un programme multithread.

class CMultiLock

Membres

Constructeurs publics

Nom

Description

CMultiLock::CMultiLock

Construit un objet CMultiLock.

Méthodes publiques

Nom

Description

CMultiLock::IsLocked

Détermine si un objet de synchronisation spécifique dans le tableau est verrouillé.

CMultiLock::Lock

Attentes du tableau d'objets de synchronisation.

CMultiLock::Unlock

Récupère tous les objets de synchronisation qui appartiennent.

Notes

CMultiLock n'a pas de classe de base.

Pour utiliser les classes CSemaphorede synchronisation, CMutex, et CEvent, vous pouvez créer un objet de CMultiLock ou de CSingleLock à l'attente sur et libérer l'objet de synchronisation. Utilisez CMultiLock lorsqu'il existe plusieurs objets que vous pouvez utiliser à un moment donné. Utilisez CSingleLock lorsque vous devez seulement attendre un objet à la fois.

Pour utiliser un objet de CMultiLock , créez d'abord un tableau des objets de synchronisation dans lequel vous souhaitez à l'attente. Ensuite, appelez le constructeur de l'objet de CMultiLock à l'intérieur d'une fonction membre dans la classe de la ressource contrôlée. Appelez la fonction membre de Verrouillage pour déterminer si une ressource est disponible (signalé). Si l'un est le cas, passez le reste de la fonction membre. Si aucune ressource n'est disponible, attendez une quantité spécifique de temps pour une ressource est libérée, ou retournez l'échec. Après l'utilisation d'une ressource est terminé, soit d'appeler la fonction de déverrouillez si l'objet de CMultiLock doit être utilisé de nouveau, ou autorisent l'objet de CMultiLock à détruire.

Les objets deCMultiLock sont très utiles lorsqu'un thread possède un grand nombre d'objets d' CEvent qu'il peut répondre. Créez un tableau contenant tous les pointeurs d' CEvent , puis appelez Lock. Cela fait attendre que le thread jusqu'à ce que l'une des événements soit signalé.

Pour plus d'informations sur l'utilisation des objets de CMultiLock , consultez l'article Multithreading : Comment utiliser les classes de synchronisation.

Hiérarchie d'héritage

CMultiLock

Configuration requise

Header: afxmt.h

Voir aussi

Référence

Graphique de la hiérarchie