Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Az aktív sablontár (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Ez az osztály metódusokat biztosít egy kritikus szakaszobjektum tulajdonjogának beszerzéséhez és kiadásához.
Szemantika
class CComCriticalSection
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CComCriticalSection::CComCriticalSection | A konstruktor. |
Nyilvános módszerek
| Név | Description |
|---|---|
| CComCriticalSection::Init | Kritikus szakaszobjektumot hoz létre és inicializál. |
| CComCriticalSection::Lock | Megszerezi a kritikus szakaszobjektum tulajdonjogát. |
| CComCriticalSection::Term | Felszabadítja a kritikus szakaszobjektum által használt rendszererőforrásokat. |
| CComCriticalSection::Unlock | Felszabadítja a kritikus szakaszobjektum tulajdonjogát. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
| CComCriticalSection::m_sec | Egy CRITICAL_SECTION objektum. |
Megjegyzések
CComCriticalSection hasonló a CComAutoCriticalSection osztályhoz, azzal a kivételével, hogy explicit módon inicializálnia kell és fel kell szabadítania a kritikus szakaszt.
Általában a typedefCriticalSection nevet használjaCComCriticalSection. Ez a név a CComMultiThreadModel használatakor hivatkozikCComCriticalSection.
A CComCritSecLock osztályban biztonságosabban használhatja ezt az osztályt, mint a hívás és Unlock a közvetlen használatLock.
Requirements
Fejléc: atlcore.h
CComCriticalSection::CComCriticalSection
A konstruktor.
CComCriticalSection() throw();
Megjegyzések
A m_sec adattagot NULL értékre állítja.
CComCriticalSection::Init
Meghívja az InitializeCriticalSection Win32 függvényt, amely inicializálja a m_sec adattagban található kritikus szakaszobjektumot.
HRESULT Init() throw();
Visszaadott érték
Sikeres, E_OUTOFMEMORY vagy sikertelen E_FAIL S_OK ad vissza.
CComCriticalSection::Lock
Meghívja az EnterCriticalSection Win32 függvényt, amely megvárja, amíg a szál átveszi a m_sec adattagban található kritikus szakaszobjektum tulajdonjogát.
HRESULT Lock() throw();
Visszaadott érték
Sikeres, E_OUTOFMEMORY vagy sikertelen E_FAIL S_OK ad vissza.
Megjegyzések
A kritikus szakaszobjektumot először inicializálni kell az Init metódus hívásával. Ha a védett kód végrehajtása befejeződött, a szálnak fel kell hívnia az Unlock metódust a kritikus szakasz tulajdonjogának felszabadításához.
CComCriticalSection::m_sec
Az összes CComCriticalSection metódus által használt kritikus szakaszobjektumot tartalmazza.
CRITICAL_SECTION m_sec;
CComCriticalSection::Term
Meghívja a Win32 függvény DeleteCriticalSection függvényét, amely felszabadítja az m_sec adattagban található kritikus szakaszobjektum által használt összes erőforrást.
HRESULT Term() throw();
Visszaadott érték
S_OK ad vissza.
Megjegyzések
A meghívás után Term a kritikus szakasz már nem használható szinkronizálásra.
CComCriticalSection::Unlock
Meghívja a Win32 függvényt, a LeaveCriticalSection függvényt, amely felszabadítja a m_sec adattagban található kritikus szakaszobjektum tulajdonjogát.
HRESULT Unlock() throw();
Visszaadott érték
S_OK ad vissza.
Megjegyzések
A tulajdonjog megszerzéséhez a szálnak meg kell hívnia a Zárolás metódust. Minden híváshoz Lock szükség van egy megfelelő hívásra a Unlock kritikus szakasz tulajdonjogának felszabadításához.
Lásd még
CComFakeCriticalSection osztály
osztály áttekintése
CComCritSecLock osztály