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:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Egy tiszta virtuális osztály, amely a Win32 szinkronizálási objektumainak általános funkcióit biztosítja.
Szemantika
class CSyncObject : public CObject
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CSyncObject::CSyncObject | Egy CSyncObject objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
| CSyncObject::Lock | Hozzáférést kap a szinkronizálási objektumhoz. |
| CSyncObject::Unlock | Hozzáférést kap a szinkronizálási objektumhoz. |
Nyilvános operátorok
| Név | Description |
|---|---|
| CSyncObject::operator HANDLE | Hozzáférést biztosít a szinkronizálási objektumhoz. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
| CSyncObject::m_hObject | A mögöttes szinkronizálási objektum leírója. |
Megjegyzések
A Microsoft Foundation osztálykönyvtára több osztályt CSyncObjectis biztosít. Ezek a CEvent, a CMutex, a CCriticalSection és a CSemaphore.
A szinkronizálási objektumok használatáról további információt a Többszálúság: A szinkronizálási osztályok használata című cikkben talál.
Öröklési hierarchia
CSyncObject
Requirements
Fejléc: afxmt.h
CSyncObject::CSyncObject
A megadott névvel rendelkező szinkronizálási objektumot hoz létre.
explicit CSyncObject(LPCTSTR pstrName);
virtual ~CSyncObject();
Paraméterek
pstrName
Az objektum neve. Ha NULL, akkor a pstrName értéke null lesz.
CSyncObject::Lock
Hívja meg ezt a függvényt, hogy hozzáférjen a szinkronizálási objektum által vezérelt erőforráshoz.
virtual BOOL Lock(DWORD dwTimeout = INFINITE);
Paraméterek
dwTimeout
Ezredmásodpercben megadja a szinkronizálási objektum rendelkezésre állásának (jelzésének) időtartamát. Ha VÉGTELEN, Lock a visszatérés előtt megvárja, amíg az objektum jelzése meg nem jelenik.
Visszaadott érték
Nonzero, ha a függvény sikeres volt; egyéb esetben 0.
Megjegyzések
Ha a szinkronizálási objektum jelzést kap, sikeresen visszatér, Lock és a szál most már az objektum tulajdonosa. Ha a szinkronizálási objektum nincs aláírva (nem érhető el), Lock megvárja, amíg a szinkronizálási objektum a dwTimeOut paraméterben megadott ezredmásodpercig lesz jelezve. Ha a szinkronizálási objektum nem lett jelezve a megadott idő alatt, Lock hibát ad vissza.
CSyncObject::m_hObject
A mögöttes szinkronizálási objektum leírója.
HANDLE m_hObject;
CSyncObject::operator HANDLE
Ezzel az operátorral lekérheti az objektum fogópontját CSyncObject .
operator HANDLE() const;
Visszaadott érték
Ha sikeres, a szinkronizálási objektum kezelője; ellenkező esetben NULL.
Megjegyzések
A leíróval közvetlenül meghívhatja a Windows API-kat.
CSyncObject::Unlock
A paraméterek nélküli deklaráció Unlock egy tiszta virtuális függvény, amelyet felül kell bírálni az összes, a forrásból származó osztálynak CSyncObject.
virtual BOOL Unlock() = 0; virtual BOOL Unlock(
LONG lCount,
LPLONG lpPrevCount = NULL);
Paraméterek
lCount
Az alapértelmezett implementáció nem használja.
lpPrevCount
Az alapértelmezett implementáció nem használja.
Visszaadott érték
Az alapértelmezett implementáció mindig IGAZ értéket ad vissza.
Megjegyzések
A két paraméterrel rendelkező deklaráció alapértelmezett implementációja mindig IGAZ értéket ad vissza. Ez a függvény a hívószál tulajdonában lévő szinkronizálási objektumhoz való hozzáférés felszabadítására van meghívva. A második deklaráció olyan szinkronizálási objektumokhoz van megadva, mint a szemaphorok, amelyek egynél több szabályozott erőforrás elérését teszik lehetővé.