Udostępnij za pośrednictwem


Klasa CMutex

Reprezentuje "mutex" — obiekt synchronizacji, który pozwala jednym wątku wykluczają dostępu do zasobu.

class CMutex : public CSyncObject

Członkowie

tt45160e.collapse_all(pl-pl,VS.110).gifPubliczne konstruktory

Nazwa

Opis

CMutex::CMutex

Konstrukcje CMutex obiektu.

Uwagi

Muteksy są przydatne tylko jeden wątek na raz można zezwolić na modyfikowanie danych lub kontrolowanych zasobów.Na przykład dodawanie do połączonej listy węzłów jest proces, który powinny być dozwolone tylko przez jeden wątek na raz.Za pomocą CMutex obiektu do sterowania połączonej listy tylko jeden wątek na raz można uzyskać dostęp do listy.

Aby użyć CMutex obiektów, skonstruować CMutex obiektu, gdy jest potrzebna.Określ nazwę obiektu mutex chcesz czekać i aplikacji początkowo powinien należeć.Jeśli konstruktor zwróci może następnie uzyskać dostęp mutex.Wywołanie CSyncObject::Unlock po zakończeniu uzyskiwanie dostępu do zasobów kontrolowanych.

Alternatywna metoda za pomocą CMutex obiektów jest dodanie do zmiennej typu CMutex jako członek danych do klasy do kontroli.Podczas budowy kontrolowanych obiektu, wywołanie konstruktora CMutex Członkowskie dane określające Jeśli mutex początkowo jest własnością, nazwa obiektu mutex (jeśli będzie używany przez granice procesu) i pożądane atrybuty zabezpieczeń.

Dostępu do zasobów kontrolowanych przez CMutex obiektów w ten sposób utworzyć zmienną typu albo CSingleLock lub CMultiLock w funkcji Członkowskich dostępu użytkownika zasobu.Następnie wywołać obiekt Zablokuj Lock Członkowskich funkcji (na przykład CSingleLock::Lock).W tym momencie wątek będzie albo uzyskać dostęp do zasobu, oczekiwania zasobu zwolnione i uzyskać dostęp lub oczekiwania zasobu na zwolniony i limit czasu, nieudana próba uzyskania dostępu do zasobu.W każdym przypadku zasób uzyskiwano w sposób bezpieczny wątku.Aby zwolnić zasób, należy zablokować obiektu Unlock Członkowskich funkcji (na przykład CSingleLock::Unlock), lub zablokować obiektu spadnie poza zakresem.

Aby uzyskać więcej informacji na temat używania CMutex obiektów, zobacz artykuł Multithreading: jak używać klasy synchronizacji.

Hierarchii dziedziczenia

CObject

CSyncObject

CMutex

Wymagania

Nagłówek: afxmt.h

Zobacz też

Informacje

Klasa CSyncObject

Wykres hierarchii