Delen via


CComCriticalSection-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse biedt methoden voor het verkrijgen en vrijgeven van het eigendom van een kritiek sectieobject.

Syntaxis

class CComCriticalSection

Leden

Openbare constructors

Naam Description
CComCriticalSection::CComCriticalSection De constructor.

Openbare methoden

Naam Description
CComCriticalSection::Init Hiermee maakt en initialiseert u een kritiek sectieobject.
CComCriticalSection::Lock Hiermee krijgt u het eigendom van het kritieke sectieobject.
CComCriticalSection::Term Releases systeemresources die worden gebruikt door het kritieke sectieobject.
CComCriticalSection::Unlock Hiermee wordt het eigendom van het kritieke sectieobject vrijgegeven.

Publieke dataleden

Naam Description
CComCriticalSection::m_sec Een CRITICAL_SECTION-object.

Opmerkingen

CComCriticalSection is vergelijkbaar met klasse CComAutoCriticalSection, behalve dat u de kritieke sectie expliciet moet initialiseren en vrijgeven.

Normaal gesproken gebruikt CComCriticalSection u de typedef naam CriticalSection. Deze naam verwijst naar CComCriticalSection wanneer CComMultiThreadModel wordt gebruikt.

Zie CComCritSecLock Class voor een veiligere manier om deze klasse te gebruiken dan bellen Lock en Unlock rechtstreeks.

Requirements

Header: atlcore.h

CComCriticalSection::CComCriticalSection

De constructor.

CComCriticalSection() throw();

Opmerkingen

Hiermee stelt u het m_sec gegevenslid in op NULL.

CComCriticalSection::Init

Roept de Win32-functie InitializeCriticalSection aan, waarmee het kritieke sectieobject in het m_sec gegevenslid wordt geïnitialiseerd.

HRESULT Init() throw();

Retourwaarde

Retourneert S_OK over geslaagde bewerkingen, E_OUTOFMEMORY of E_FAIL bij fouten.

CComCriticalSection::Lock

Roept de Win32-functie EnterCriticalSection aan, die wacht totdat de thread eigenaar kan worden van het kritieke sectieobject in het m_sec gegevenslid.

HRESULT Lock() throw();

Retourwaarde

Retourneert S_OK over geslaagde bewerkingen, E_OUTOFMEMORY of E_FAIL bij fouten.

Opmerkingen

Het kritieke sectieobject moet eerst worden geïnitialiseerd met een aanroep naar de Init-methode . Wanneer de beveiligde code is uitgevoerd, moet de thread Ontgrendelen aanroepen om het eigendom van de kritieke sectie vrij te geven.

CComCriticalSection::m_sec

Bevat een kritiek sectieobject dat door alle CComCriticalSection methoden wordt gebruikt.

CRITICAL_SECTION m_sec;

CComCriticalSection::Term

Roept de Win32-functie DeleteCriticalSection aan, waarmee alle resources worden vrijgegeven die worden gebruikt door het kritieke sectieobject in het m_sec gegevenslid.

HRESULT Term() throw();

Retourwaarde

Retourneert S_OK.

Opmerkingen

Zodra Term deze is aangeroepen, kan de kritieke sectie niet meer worden gebruikt voor synchronisatie.

CComCriticalSection::Unlock

Roept de Win32-functie LeaveCriticalSection aan, waardoor het eigendom wordt vrijgegeven van het kritieke sectieobject in het m_sec gegevenslid.

HRESULT Unlock() throw();

Retourwaarde

Retourneert S_OK.

Opmerkingen

Als u eerst eigenaar wilt worden, moet de thread de vergrendelingsmethode aanroepen. Voor elke aanroep is Lock een bijbehorende aanroep vereist om het eigendom van de kritieke sectie vrij te Unlock geven.

Zie ook

CComFakeCriticalSection-klasse
Overzicht van klassen
CComCritSecLock-klasse