CMutex

U&n objet de classe CMutex représente un "mutex" nbsp; — un objet de synchronisation qui permet un thread mutuellement accès à une ressource. Les mutex sont utiles lorsqu'un seul thread à la fois peut être permise pour modifier des données ou une autre ressource contrôlée. Par exemple, l'ajout d'une liste liée de nœuds est un processus qui n'est accueilli par un seul thread à la fois. En utilisant un objet CMutex pour contrôler la liste liée, un seul thread à la fois peut également accéder à la liste.

Pour utiliser un objet CMutex , construire l'objet CMutex lorsque c'est nécessaire. Spécifiez le nom du mutex vous souhaitez attendre, et que votre application doit posséder initialement il. Vous pouvez alors accéder le mutex retourne le constructeur. Appelez CSyncObject::Unlock lorsque vous avez terminé accès à la ressource contrôlée.

Une autre méthode pour l'utilisation d'objets CMutex est d'ajouter une variable de type CMutex comme un membre de données pour la classe que vous souhaitez de contrôle. Lors de la construction de l'objet contrôlé, appelez le constructeur du membre de données CMutex spécifiant si le mutex est détenu au départ, le nom du mutex (si elle sera utilisée à travers les frontières de processus) et souhaité des attributs de sécurité.

Pour accéder aux ressources contrôlées par des objets CMutex de cette manière, tout d'abord créer une variable de type CSingleLock ou CMultiLock de type en fonction de la ressource sur votre accès membre. Appelez ensuite la fonction de membre de l'objet lock Lock (par exemple, CSingleLock::Lock). À ce stade, votre thread sera soit accéder à la ressource, attendez que la ressource être libéré et accéder ou attendre pour la ressource d'être libéré et hors du temps, ne pas accéder à la ressource. En tout cas, votre ressource a été consultée de façon thread-safe. Pour libérer la ressource, utilisez la fonction de membre de l'objet lock Unlock (par exemple, CSingleLock::Unlock), ou permettre l'objet lock à tomber hors de la portée.

Pour plus d'informations sur l'utilisation des objets CMutex , consultez l'article Multithreading : comment utiliser les Classes de synchronisation dans le Guide du programmeur Visual C++.

# include lt;afxmt.h>

Membres de la classe |  ; Classe de base | Graphique de la hiérarchie

Écha&ntillonnbsp ; Exemple MFC MUTEXES

Index