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
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.