Share via


critical_section-klasse

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();

Zie ook

concurrentie Namespace
reader_writer_lock-klasse