Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nereentrantní mutex, který explicitně ví o concurrency Runtime.
Syntaxe
class critical_section;
Členové
Veřejné definice typedef
| Název | Popis |
|---|---|
native_handle_type |
Odkaz na critical_section objekt. |
Veřejné třídy
| Název | Popis |
|---|---|
| critical_section::scoped_lock – třída | Výjimkou bezpečné obálky RAII pro critical_section objekt. |
Veřejné konstruktory
| Název | Popis |
|---|---|
| critical_section | Vytvoří novou kritickou část. |
| ~critical_section Destruktor | Zničí kritickou část. |
Veřejné metody
| Název | Popis |
|---|---|
| lock | Získá tuto kritickou část. |
| native_handle | Vrátí nativní popisovač specifický pro platformu, pokud existuje. |
| try_lock | Pokusí se získat zámek bez blokování. |
| try_lock_for | Pokusí se získat zámek bez blokování určitého počtu milisekund. |
| odemknout | Odemkne kritickou část. |
Poznámky
Další informace naleznete v tématu Synchronizace datových struktur.
Hierarchie dědičnosti
critical_section
Požadavky
Hlavička: concrt.h
Obor názvů: souběžnost
critical_section
Vytvoří novou kritickou část.
critical_section();
~critical_section
Zničí kritickou část.
~critical_section();
Poznámky
Očekává se, že zámek se už při spuštění destruktoru neudrží. Povolením kritického oddílu destrukci zámkem stále dochází k nedefinovaným chováním.
lock
Získá tuto kritickou část.
void lock();
Poznámky
Často je bezpečnější využívat konstruktor scoped_lock k získání a uvolnění critical_section objektu bezpečným způsobem.
Pokud zámek již existuje v kontextu volání, vyvolá se výjimka improper_lock .
native_handle
Vrátí nativní popisovač specifický pro platformu, pokud existuje.
native_handle_type native_handle();
Návratová hodnota
Odkaz na kritickou část.
Poznámky
critical_section Objekt není přidružený k nativnímu popisovači specifické pro platformu pro operační systém Windows. Metoda jednoduše vrátí odkaz na samotný objekt.
critical_section::scoped_lock – třída
Výjimkou bezpečné obálky RAII pro critical_section objekt.
class scoped_lock;
scoped_lock::scoped_lock
scoped_lock Vytvoří objekt a získá critical_section objekt předaný v parametru_Critical_section. Pokud je kritický oddíl uchován jiným vláknem, toto volání se zablokuje.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
Parametry
_Critical_section
Kritická část, která se má uzamknout.
scoped_lock::~scoped_lock
scoped_lock Zničí objekt a uvolní kritický oddíl zadaný v jeho konstruktoru.
~scoped_lock();
try_lock
Pokusí se získat zámek bez blokování.
bool try_lock();
Návratová hodnota
Pokud byl zámek získán, hodnota true; jinak hodnota false.
try_lock_for
Pokusí se získat zámek bez blokování určitého počtu milisekund.
bool try_lock_for(unsigned int _Timeout);
Parametry
_Přerušení zápasu
Počet milisekund, které se mají před uplynutím časového limitu počkat.
Návratová hodnota
Pokud byl zámek získán, hodnota true; jinak hodnota false.
odemknout
Odemkne kritickou část.
void unlock();