Udostępnij za pośrednictwem


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/nazwisko opis
CSyncObject::CSyncObject CSyncObject Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CSyncObject::Lock Uzyskuje dostęp do obiektu synchronizacji.
CSyncObject::Unlock Uzyskuje dostęp do obiektu synchronizacji.

Operatory publiczne

Nazwa/nazwisko opis
CSyncObject::operator HANDLE Zapewnia dostęp do obiektu synchronizacji.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CSyncObject::m_hObject Dojście do bazowego obiektu synchronizacji.

Uwagi

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

Aby uzyskać informacje na temat korzystania z obiektów synchronizacji, zobacz artykuł Multithreading: How to Use the Synchronization Classes (Jak używać klas synchronizacji).

Hierarchia dziedziczenia

Obiekt 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 parametr NIESKOŃCZONY, 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 zostanie 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ć uchwyt 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 Unlock bez parametrów 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

Domyślna implementacja 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 wątku wywołującego. 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