Classe de CCriticalSection
Représente une section critique « » — un objet de synchronisation qui permet à un seul thread à la fois pour accéder à une ressource ou une section de code.
class CCriticalSection : public CSyncObject
Membres
Constructeurs publics
Nom |
Description |
---|---|
Construit un objet CCriticalSection. |
Méthodes publiques
Nom |
Description |
---|---|
Utilisation d'accéder à l'objet d' CCriticalSection . |
|
Libère l'objet d' CCriticalSection . |
Opérateurs publics
Nom |
Description |
---|---|
Extrait un pointeur vers l'objet interne de CRITICAL_SECTION . |
Données membres publiques
Nom |
Description |
---|---|
Un objet de CRITICAL_SECTION . |
Notes
Les sections critiques sont utiles lorsqu'il peut permettre à un seul thread à la fois pour modifier les données ou une autre ressource contrôlée.Par exemple, ajouter des nœuds à une liste liée est un processus qui doit être autorisé par un seul thread à la fois.À l'aide d'un objet d' CCriticalSection pour contrôler la liste liée, un seul thread à la fois peut accéder à la liste.
[!REMARQUE]
Les fonctionnalités de la classe d' CCriticalSection est fournie par un objet réel Win32 CRITICAL_SECTION .
Les sections critiques sont utilisées au lieu des mutex (consultez CMutex) lorsque la vitesse est critique et la ressource n'est pas utilisée au delà de les limites du processus.
Il existe deux méthodes pour utiliser un objet d' CCriticalSection : autonome et incorporé dans une classe.
La méthode autonome pour utiliser un objet autonome d' CCriticalSection , construisent l'objet d' CCriticalSection lorsqu'elle est nécessaire.Après qu'un retour réussi du constructeur, verrouillent explicitement l'objet avec un appel à Verrouillage.Appelez déverrouillez lorsque vous avez fini accédant à la section critique.Cette méthode, tandis que clearer à un utilisateur qui lit votre code source, est une erreur plus encline que vous devez penser à verrouiller et déverrouiller la section critique avant et après l'accès.
Une méthode plus est préférable d'utiliser la classe de CSingleLock .Elle possède également une méthode d' Lock et d' Unlock , mais vous n'avez pas à vous préoccuper de déverrouiller la ressource si une exception se produit.
Méthode incorporée vous pouvez également partager une classe avec plusieurs threads en ajoutant une donnée membre de type d' CCriticalSectionà la classe et le verrouillage le membre lorsque cela est nécessaire.
Pour plus d'informations sur l'utilisation des objets d' CCriticalSection , consultez l'article Multithreading : Comment utiliser les classes de synchronisation.
Hiérarchie d'héritage
CCriticalSection
Configuration requise
Header: afxmt.h