Partager via


CComCriticalSection, classe

Cette classe fournit des méthodes pour obtenir et libérer la propriété d’un objet de section critique.

Syntaxe

class CComCriticalSection

Membres

Constructeurs publics

Nom Description
CComCriticalSection ::CComCriticalSection Constructeur .

Méthodes publiques

Nom Description
CComCriticalSection ::Init Crée et initialise un objet de section critique.
CComCriticalSection ::Lock Obtient la propriété de l’objet de section critique.
CComCriticalSection ::Term Libère les ressources système utilisées par l’objet de section critique.
CComCriticalSection ::Unlock Libère la propriété de l’objet de section critique.

Membres de données publics

Nom Description
CComCriticalSection ::m_sec Objet CRITICAL_SECTION.

Notes

CComCriticalSection est similaire à la classe CComAutoCriticalSection, sauf que vous devez initialiser et libérer explicitement la section critique.

En règle générale, vous utilisez CComCriticalSection le typedef nom CriticalSection. Ce nom fait référence CComCriticalSection lorsque CComMultiThreadModel est utilisé.

Consultez la classe CComCritSecLock pour obtenir un moyen plus sûr d’utiliser cette classe que d’appeler Lock et Unlock directement.

Spécifications

En-tête : atlcore.h

CComCriticalSection ::CComCriticalSection

Constructeur .

CComCriticalSection() throw();

Notes

Définit le membre de données m_sec sur NULL.

CComCriticalSection ::Init

Appelle la fonction Win32 InitializeCriticalSection, qui initialise l’objet de section critique contenu dans le membre de données m_sec .

HRESULT Init() throw();

Valeur de retour

Retourne S_OK en cas de réussite, de E_OUTOFMEMORY ou de E_FAIL en cas d’échec.

CComCriticalSection ::Lock

Appelle la fonction Win32 EnterCriticalSection, qui attend que le thread puisse prendre possession de l’objet de section critique contenu dans le membre de données m_sec .

HRESULT Lock() throw();

Valeur de retour

Retourne S_OK en cas de réussite, de E_OUTOFMEMORY ou de E_FAIL en cas d’échec.

Notes

L’objet de section critique doit d’abord être initialisé avec un appel à la méthode Init . Lorsque le code protégé a terminé l’exécution, le thread doit appeler Déverrouillage pour libérer la propriété de la section critique.

CComCriticalSection ::m_sec

Contient un objet de section critique utilisé par toutes les CComCriticalSection méthodes.

CRITICAL_SECTION m_sec;

CComCriticalSection ::Term

Appelle la fonction Win32 DeleteCriticalSection, qui libère toutes les ressources utilisées par l’objet de section critique contenu dans le membre de données m_sec .

HRESULT Term() throw();

Valeur de retour

Retourne S_OK.

Notes

Une fois Term appelée, la section critique ne peut plus être utilisée pour la synchronisation.

CComCriticalSection ::Unlock

Appelle la fonction Win32 LeaveCriticalSection, qui libère la propriété de l’objet de section critique contenu dans le membre de données m_sec .

HRESULT Unlock() throw();

Valeur de retour

Retourne S_OK.

Notes

Pour obtenir d’abord la propriété, le thread doit appeler la méthode Lock . Chaque appel nécessite Lock un appel correspondant pour Unlock libérer la propriété de la section critique.

Voir aussi

CComFakeCriticalSection, classe
Vue d’ensemble de la classe
CComCritSecLock, classe