Freigeben über


CSyncObject-Klasse

Eine rein virtuelle Klasse, welche die Funktionalität bereitstellt, die alle Synchronisierungsobjekte in Win32 gemeinsam haben.

Syntax

class CSyncObject : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CSyncObject::CSyncObject Erstellt ein CSyncObject-Objekt.

Öffentliche Methoden

Name Beschreibung
CSyncObject::Lock Erhält Zugriff auf das Synchronisierungsobjekt.
CSyncObject::Unlock Erhält Zugriff auf das Synchronisierungsobjekt.

Öffentliche Operatoren

Name Beschreibung
CSyncObject::operator HANDLE Bietet Zugriff auf das Synchronisierungsobjekt.

Öffentliche Datenmember

Name Beschreibung
CSyncObject::m_hObject Das Handle für das zugrunde liegende Synchronisierungsobjekt.

Hinweise

Die Microsoft Foundation-Klassenbibliothek stellt mehrere Klassen bereit, die von CSyncObject. Dies sind CEvent, CMutex, CCriticalSection und CSemaphor.

Informationen zur Verwendung der Synchronisierungsobjekte finden Sie im Artikel "Multithreading: Verwenden der Synchronisierungsklassen".

Vererbungshierarchie

CObject

CSyncObject

Anforderungen

Kopfzeile: afxmt.h

CSyncObject::CSyncObject

Erstellt ein Synchronisierungsobjekt mit dem angegebenen Namen.

explicit CSyncObject(LPCTSTR pstrName);
virtual ~CSyncObject();

Parameter

pstrName
Der Name des Objekts. Wenn NULL, ist pstrName null.

CSyncObject::Lock

Rufen Sie diese Funktion auf, um Zugriff auf die Ressource zu erhalten, die vom Synchronisierungsobjekt gesteuert wird.

virtual BOOL Lock(DWORD dwTimeout = INFINITE);

Parameter

dwTimeout
Gibt die Zeit in Millisekunden an, bis das Synchronisierungsobjekt verfügbar ist (signalisiert). Wenn INFINITE, wartet, Lock bis das Objekt vor dem Zurückgeben signalisiert wird.

Rückgabewert

Nonzero, wenn die Funktion erfolgreich war; andernfalls 0.

Hinweise

Wenn das Synchronisierungsobjekt signalisiert wird, wird es erfolgreich zurückgegeben, Lock und der Thread besitzt nun das Objekt. Wenn das Synchronisierungsobjekt nicht signalisiert ist (nicht verfügbar), Lock wartet, bis das Synchronisierungsobjekt bis zur Anzahl von Millisekunden signalisiert wird, die im dwTimeOut-Parameter angegeben ist. Wenn das Synchronisierungsobjekt in der angegebenen Zeitspanne nicht signalisiert wurde, Lock wird ein Fehler zurückgegeben.

CSyncObject::m_hObject

Das Handle für das zugrunde liegende Synchronisierungsobjekt.

HANDLE m_hObject;

CSyncObject::operator HANDLE

Verwenden Sie diesen Operator, um das Handle des CSyncObject Objekts abzurufen.

operator HANDLE() const;

Rückgabewert

Bei erfolgreicher Ausführung des Synchronisierungsobjekts; andernfalls NULL.

Hinweise

Sie können das Handle verwenden, um Windows-APIs direkt aufzurufen.

CSyncObject::Unlock

Die Deklaration ohne Unlock Parameter ist eine reine virtuelle Funktion und muss von allen Klassen außer Kraft gesetzt werden, die von CSyncObject.

virtual BOOL Unlock() = 0; virtual BOOL Unlock(
    LONG lCount,
    LPLONG lpPrevCount = NULL);

Parameter

lCount
Wird nicht standardmäßig von der Implementierung verwendet.

lpPrevCount
Wird nicht standardmäßig von der Implementierung verwendet.

Rückgabewert

Die Standardimplementierung gibt immer TRUE zurück.

Hinweise

Die Standardimplementierung der Deklaration mit zwei Parametern gibt immer TRUE zurück. Diese Funktion wird aufgerufen, um den Zugriff auf das Synchronisierungsobjekt freizugeben, das dem aufrufenden Thread gehört. Die zweite Deklaration wird für Synchronisierungsobjekte wie Semaphore bereitgestellt, die mehr als einen Zugriff auf eine kontrollierte Ressource ermöglichen.

Siehe auch

CObject-Klasse
Hierarchiediagramm