Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.