Sdílet prostřednictvím


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

CCriticalSection::CCriticalSection

Konstrukce CCriticalSection objektu.

Veřejné metody

Název

Description

CCriticalSection::Lock

Slouží k získání přístupu k CCriticalSection objektu.

CCriticalSection::Unlock

Vydání CCriticalSection objektu.

Veřejné operátory

Název

Description

CCriticalSection::operator CRITICAL_SECTION *

Načte ukazatel na vnitřní CRITICAL_SECTION objektu.

Veřejné datové členy

Název

Description

CCriticalSection::m_sect

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

CObject

CSyncObject

CCriticalSection

Požadavky

Záhlaví: afxmt.h

Viz také

Referenční dokumentace

Třída CSyncObject

Graf hierarchie

Třída CMutex