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