Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Een niet-reentrant mutex die expliciet op de hoogte is van de Concurrency Runtime.
Syntaxis
class critical_section;
Leden
Openbare typedefs
| Naam | Description |
|---|---|
native_handle_type |
Een verwijzing naar een critical_section object. |
Openbare klassen
| Naam | Description |
|---|---|
| critical_section::scoped_lock Klasse | Een uitzonderingsveilige RAII-wrapper voor een critical_section object. |
Openbare constructors
| Naam | Description |
|---|---|
| kritieke_sectie | Maakt een nieuwe kritieke sectie. |
| ~critical_section Destructor | Vernietigt een kritieke sectie. |
Openbare methoden
| Naam | Description |
|---|---|
| vergrendeling | Hiermee verkrijgt u deze kritieke sectie. |
| native_handle | Retourneert een platformspecifieke systeemeigen ingang, indien aanwezig. |
| try_lock | Probeert de vergrendeling te verkrijgen zonder te blokkeren. |
| try_lock_for | Probeert de vergrendeling te verkrijgen zonder te blokkeren voor een bepaald aantal milliseconden. |
| Ontgrendelen | Hiermee ontgrendelt u het kritieke gedeelte. |
Opmerkingen
Zie Synchronisatiegegevensstructuren voor meer informatie.
Overnamehiƫrarchie
critical_section
Requirements
Koptekst: concrt.h
Naamruimte: concurrentie
kritieke sectie
Vormt een nieuwe kritieke sectie.
critical_section();
~critical_section
Vernietigt een kritieke sectie.
~critical_section();
Opmerkingen
Het wordt verwacht dat de vergrendeling niet meer wordt vastgehouden wanneer de destructor wordt uitgevoerd. Het toestaan dat de kritieke sectie met de nog actieve vergrendeling wordt vernietigd, resulteert in niet-gedefinieerd gedrag.
slot / vergrendeling / vergrendelen (depending on context)
Hiermee verkrijgt u deze kritieke sectie.
void lock();
Opmerkingen
Het is vaak veiliger om de scoped_lock constructie te gebruiken om een critical_section object op een veilige manier te verkrijgen en vrij te geven.
Als de vergrendeling al wordt bewaard door de aanroepende context, wordt er een improper_lock uitzondering gegenereerd.
native_handle
Retourneert een platformspecifieke systeemeigen ingang, indien aanwezig.
native_handle_type native_handle();
Retourwaarde
Een verwijzing naar de kritieke sectie.
Opmerkingen
Een critical_section object is niet gekoppeld aan een platformspecifieke systeemeigen ingang voor het Windows-besturingssysteem. De methode retourneert gewoon een verwijzing naar het object zelf.
critical_section::scoped_lock klasse
Een uitzonderingsveilige RAII-wrapper voor een critical_section object.
class scoped_lock;
scoped_lock::scoped_lock
Hiermee maakt u een scoped_lock object en verkrijgt u het critical_section object dat in de _Critical_section parameter is doorgegeven. Als de kritieke sectie wordt bewaard door een andere thread, wordt deze aanroep geblokkeerd.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
Parameterwaarden
_Kritieke_sectie
De kritieke sectie die moet worden vergrendeld.
scoped_lock::~scoped_lock
Hiermee wordt een scoped_lock object vernietigd en wordt de kritieke sectie vrijgegeven die in de constructor is opgegeven.
~scoped_lock();
poging_vergrendelen
Probeert de vergrendeling te verkrijgen zonder te blokkeren.
bool try_lock();
Retourwaarde
Als de vergrendeling is verkregen, is de waarde true; anders de waarde false.
try_lock_for
Probeert de vergrendeling te verkrijgen zonder te blokkeren voor een bepaald aantal milliseconden.
bool try_lock_for(unsigned int _Timeout);
Parameterwaarden
_Timeout
Het aantal milliseconden dat moet worden gewacht voordat er een timeout optreedt.
Retourwaarde
Als de vergrendeling is verkregen, is de waarde true; anders de waarde false.
Ontgrendelen
Hiermee ontgrendelt u het kritieke gedeelte.
void unlock();