Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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