Partager via


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

h5zew56b.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Nom

Description

CCriticalSection::CCriticalSection

Construit un objet CCriticalSection.

h5zew56b.collapse_all(fr-fr,VS.110).gifMéthodes publiques

Nom

Description

CCriticalSection::Lock

Utilisation d'accéder à l'objet d' CCriticalSection .

CCriticalSection::Unlock

Libère l'objet d' CCriticalSection .

h5zew56b.collapse_all(fr-fr,VS.110).gifOpérateurs publics

Nom

Description

CCriticalSection::operator CRITICAL_SECTION*

Extrait un pointeur vers l'objet interne de CRITICAL_SECTION .

h5zew56b.collapse_all(fr-fr,VS.110).gifDonnées membres publiques

Nom

Description

CCriticalSection::m_sect

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

CObject

CSyncObject

CCriticalSection

Configuration requise

Header: afxmt.h

Voir aussi

Référence

Classe de CSyncObject

Graphique de la hiérarchie

Classe de CMutex