Třída CCriticalSection
Představuje "kritický oddíl" – objekt synchronizace umožňuje současně přístup k prostředku nebo část kódu jeden podproces.
class CCriticalSection : public CSyncObject
Členy
Veřejné konstruktory
Název |
Description |
---|---|
Konstrukce CCriticalSection objektu. |
Veřejné metody
Název |
Description |
---|---|
Slouží k získání přístupu k CCriticalSection objektu. |
|
Vydání CCriticalSection objektu. |
Veřejné operátory
Název |
Description |
---|---|
Načte ukazatel na vnitřní CRITICAL_SECTION objektu. |
Veřejné datové členy
Název |
Description |
---|---|
A CRITICAL_SECTION objektu. |
Poznámky
Kritické sekce jsou užitečné pouze jednoho podprocesu v čase může být povoleno upravovat data nebo jiných kontrolovaných zdrojů.Například přidání uzlů do propojeného seznamu je proces, který by být povolena pouze jedním podprocesem najednou.Pomocí CCriticalSection objektu řídit propojeného seznamu pouze jeden podproces najednou můžete získat přístup k seznamu.
[!POZNÁMKA]
Funkce CCriticalSection třídy poskytované skutečné Win32 CRITICAL_SECTION objektu.
Kritické sekce jsou použity místo mutexy (viz CMutex) při rychlosti je důležité a zdroj nebude použit přes hranice procesu.
Existují dvě metody pro použití CCriticalSection objekt: samostatný a vložené ve třídě.
Samostatný způsob použití samostatného CCriticalSection objekt, sestavit CCriticalSection objektu, když je potřeba.Po úspěšném návratu z konstruktoru, uzamknout explicitně voláním objektu Lock.Volání Unlock po přístupu k kritický oddíl.Tato metoda při clearer někomu čtení zdrojového kódu, je náchylnější k chybě, musí si pamatovat zamknutí a odemknutí kritické části před a po přístupu.
Vhodnější metodou je použití CSingleLock třídy.Má rovněž Lock a Unlock metoda, ale nemusíte mít obavy o odemknutí prostředku, pokud dojde k výjimce.
Metoda třídy lze také sdílet s více podprocesy přidáním vložené CCriticalSection -typ datový člen třídy a zamykání datový člen v případě potřeby.
Další informace o použití CCriticalSection objekty, najdete v článku při souběžném: použití třídy synchronizace.
Hierarchii dědičnosti
CCriticalSection
Požadavky
Záhlaví: afxmt.h