Klasa CSyncObject

Czysta klasa wirtualna, która udostępnia funkcje wspólne dla obiektów synchronizacji w systemie Win32.

Składnia

class CSyncObject : public CObject

Elementy członkowskie

Konstruktory publiczne

Nazwa Opis
CSyncObject::CSyncObject Konstruuje CSyncObject obiekt.

Metody publiczne

Nazwa Opis
CSyncObject::Lock Uzyskuje dostęp do obiektu synchronizacji.
CSyncObject::Unlock Uzyskuje dostęp do obiektu synchronizacji.

Operatory publiczne

Nazwa Opis
CSyncObject::operator HANDLE Zapewnia dostęp do obiektu synchronizacji.

Publiczne elementy członkowskie danych

Nazwa Opis
CSyncObject::m_hObject Dojście do bazowego obiektu synchronizacji.

Uwagi

Biblioteka klas programu Microsoft Foundation udostępnia kilka klas pochodnych od CSyncObjectklasy . Są to CEvent, CMutex, CCriticalSection i CSemaphore.

Aby uzyskać informacje na temat korzystania z obiektów synchronizacji, zobacz artykuł wielowątkowość: Jak używać klas synchronizacji.

Hierarchia dziedziczenia

Cobject

CSyncObject

Wymagania

Nagłówek: afxmt.h

CSyncObject::CSyncObject

Tworzy obiekt synchronizacji o podanej nazwie.

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

Parametry

pstrName
Nazwa obiektu. Jeśli wartość NULL, parametr pstrName będzie mieć wartość null.

CSyncObject::Lock

Wywołaj tę funkcję, aby uzyskać dostęp do zasobu kontrolowanego przez obiekt synchronizacji.

virtual BOOL Lock(DWORD dwTimeout = INFINITE);

Parametry

dwTimeout
Określa ilość czasu w milisekundach oczekiwania na dostępność obiektu synchronizacji (sygnał). Jeśli wartość NIESKOŃCZONA, Lock będzie czekać, aż obiekt zostanie zasygnalizowany przed zwróceniem.

Wartość zwracana

Nonzero, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.

Uwagi

Jeśli obiekt synchronizacji jest zasygnalizowany, zostanie zwrócony pomyślnie, Lock a wątek jest teraz właścicielem obiektu. Jeśli obiekt synchronizacji jest niepodpisany (niedostępny), Lock zaczeka na zasygnalizowanie obiektu synchronizacji do liczby milisekund określonych w parametrze dwTimeOut . Jeśli obiekt synchronizacji nie został zasygnalizowany w określonym czasie, Lock zwraca błąd.

CSyncObject::m_hObject

Dojście do bazowego obiektu synchronizacji.

HANDLE m_hObject;

CSyncObject::operator HANDLE

Użyj tego operatora, aby uzyskać dojście do CSyncObject obiektu.

operator HANDLE() const;

Wartość zwracana

W przypadku powodzenia dojście do obiektu synchronizacji; w przeciwnym razie wartość NULL.

Uwagi

Uchwyt umożliwia bezpośrednie wywoływanie interfejsów API systemu Windows.

CSyncObject::Unlock

Deklaracja bez parametrów Unlock jest czystą funkcją wirtualną i musi zostać zastąpiona przez wszystkie klasy pochodzące z CSyncObjectklasy .

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

Parametry

lCount
Implementacja nie jest używana domyślnie.

lpPrevCount
Implementacja nie jest używana domyślnie.

Wartość zwracana

Implementacja domyślna zawsze zwraca wartość TRUE.

Uwagi

Domyślna implementacja deklaracji z dwoma parametrami zawsze zwraca wartość TRUE. Ta funkcja jest wywoływana w celu zwolnienia dostępu do obiektu synchronizacji należącego do wywołującego wątku. Druga deklaracja jest udostępniana dla obiektów synchronizacji, takich jak semafory, które zezwalają na więcej niż jeden dostęp do kontrolowanego zasobu.

Zobacz też

Klasa CObject
Wykres hierarchii