CComAutoCriticalSection – třída
Tato třída poskytuje metody pro získání a uvolnění vlastnictví kritického objektu oddílu.
Syntaxe
class CComCriticalSection
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CComCriticalSection::CComCriticalSection | Konstruktor |
Veřejné metody
Název | Popis |
---|---|
CComCriticalSection::Init | Vytvoří a inicializuje objekt kritického oddílu. |
CComCriticalSection::Lock | Získá vlastnictví objektu kritického oddílu. |
CComCriticalSection::Term | Uvolní systémové prostředky používané objektem kritického oddílu. |
CComCriticalSection::Unlock | Uvolní vlastnictví objektu kritického oddílu. |
Veřejné datové členy
Název | Popis |
---|---|
CComCriticalSection::m_sec | Objekt CRITICAL_SECTION. |
Poznámky
CComCriticalSection
je podobná třídě CComAutoCriticalSection, s tím rozdílem, že musíte explicitně inicializovat a uvolnit kritickou část.
Obvykle se používá prostřednictvím CComCriticalSection
typedef
názvu CriticalSection. Tento název odkazuje CComCriticalSection
při použití modelu CComMultiThreadModel .
Viz CComCritSecLock Třída bezpečnější způsob použití této třídy než volání Lock
a Unlock
přímo.
Požadavky
Hlavička: atlcore.h
CComCriticalSection::CComCriticalSection
Konstruktor
CComCriticalSection() throw();
Poznámky
Nastaví datový člen m_sec na hodnotu NULL.
CComCriticalSection::Init
Volá funkci Win32 InitializeCriticalSection, která inicializuje kritický objekt oddílu obsažený v datovém členu m_sec .
HRESULT Init() throw();
Návratová hodnota
Vrátí S_OK při úspěchu, E_OUTOFMEMORY nebo E_FAIL při selhání.
CComCriticalSection::Lock
Volá funkci Win32 EnterCriticalSection, která čeká, až vlákno může převzít vlastnictví kritického objektu oddílu obsaženého v m_sec datovém členu.
HRESULT Lock() throw();
Návratová hodnota
Vrátí S_OK při úspěchu, E_OUTOFMEMORY nebo E_FAIL při selhání.
Poznámky
Objekt kritického oddílu musí být nejprve inicializován voláním inicializační metody. Po dokončení provádění chráněného kódu musí vlákno volat Odemknout , aby uvolnilo vlastnictví kritické části.
CComCriticalSection::m_sec
Obsahuje objekt kritického oddílu, který se používá všemi CComCriticalSection
metodami.
CRITICAL_SECTION m_sec;
CComCriticalSection::Term
Volá funkci Win32 DeleteCriticalSection, která uvolní všechny prostředky používané kritickým objektem oddílu obsaženým v datovém členu m_sec.
HRESULT Term() throw();
Návratová hodnota
Vrátí S_OK.
Poznámky
Po Term
zavolání už nelze kritickou část použít k synchronizaci.
CComCriticalSection::Unlock
Volá funkci Win32 LeaveCriticalSection, která uvolní vlastnictví kritického objektu oddílu obsaženého v datovém členu m_sec .
HRESULT Unlock() throw();
Návratová hodnota
Vrátí S_OK.
Poznámky
Pro první získání vlastnictví musí vlákno volat Lock metoda. Každé volání Lock
vyžaduje odpovídající volání k Unlock
uvolnění vlastnictví kritického oddílu.
Viz také
CComFakeCriticalSection – třída
Přehled třídy
CComCritSecLock – třída