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