CSyncObject – třída
Čistě virtuální třída, která poskytuje funkce společné pro synchronizační objekty v systému Win32.
Syntaxe
class CSyncObject : public CObject
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CSyncObject::CSyncObject | CSyncObject Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CSyncObject::Lock | Získá přístup k objektu synchronizace. |
CSyncObject::Unlock | Získá přístup k objektu synchronizace. |
Veřejné operátory
Název | Popis |
---|---|
CSyncObject::operator HANDLE | Poskytuje přístup k objektu synchronizace. |
Veřejné datové členy
Název | Popis |
---|---|
CSyncObject::m_hObject | Popisovač základního objektu synchronizace. |
Poznámky
Knihovna tříd Microsoft Foundation poskytuje několik tříd odvozených z CSyncObject
. Jedná se o CEvent, CMutex, CCriticalSection a CSemaphore.
Informace o tom, jak používat synchronizační objekty, naleznete v článku Multithreading: Jak používat synchronizační třídy.
Hierarchie dědičnosti
CSyncObject
Požadavky
Hlavička: afxmt.h
CSyncObject::CSyncObject
Vytvoří synchronizační objekt se zadaným názvem.
explicit CSyncObject(LPCTSTR pstrName);
virtual ~CSyncObject();
Parametry
pstrName
Název objektu. Pokud null, pstrName bude null.
CSyncObject::Lock
Voláním této funkce získáte přístup k prostředku řízenému objektem synchronizace.
virtual BOOL Lock(DWORD dwTimeout = INFINITE);
Parametry
dwTimeout
Určuje dobu v milisekundách, po kterou bude synchronizační objekt dostupný (signalován). Pokud je NEKONEČNO, bude čekat, Lock
až se objekt před návratem signalizují.
Návratová hodnota
Nenulové, pokud byla funkce úspěšná; jinak 0.
Poznámky
Pokud je objekt synchronizace signalován, Lock
vrátí se úspěšně a vlákno nyní vlastní objekt. Pokud je synchronizační objekt nepřiřazený (nedostupný), bude čekat, Lock
až se objekt synchronizace signalizuje až do počtu milisekund zadaných v parametru dwTimeOut . Pokud synchronizační objekt nebyl signalován v zadaném čase, Lock
vrátí chybu.
CSyncObject::m_hObject
Popisovač základního objektu synchronizace.
HANDLE m_hObject;
CSyncObject::operator HANDLE
Tento operátor slouží k získání popisovače objektu CSyncObject
.
operator HANDLE() const;
Návratová hodnota
V případě úspěchu popisovač objektu synchronizace; v opačném případě null.
Poznámky
Popisovač můžete použít k přímému volání rozhraní API systému Windows.
CSyncObject::Unlock
Deklarace Unlock
bez parametrů je čistě virtuální funkce a musí být přepsána všemi třídami odvozenými z CSyncObject
.
virtual BOOL Unlock() = 0; virtual BOOL Unlock(
LONG lCount,
LPLONG lpPrevCount = NULL);
Parametry
LCount
Ve výchozím nastavení se nepoužívá implementace.
lpPrevCount
Ve výchozím nastavení se nepoužívá implementace.
Návratová hodnota
Výchozí implementace vždy vrátí hodnotu TRUE.
Poznámky
Výchozí implementace deklarace se dvěma parametry vždy vrátí hodnotu TRUE. Tato funkce se volá k uvolnění přístupu k objektu synchronizace vlastněného volajícím vláknem. Druhá deklarace je poskytována pro synchronizační objekty, jako jsou semaphores, které umožňují více než jeden přístup řízeného prostředku.