CMutex

Obiekt klasy CMutex reprezentuje nbsp "mutex"; — obiekt synchronizacji, który pozwala jednym wątku wzajemnie wyłączny dostęp do zasobu. Licznik Muteksy są przydatne, gdy tylko jeden wątek na raz można zezwolić na modyfikowanie danych lub innych kontrolowanych zasobów. &Na przykład dodawania węzłów do połączonej listy jest procesem, która powinna być dozwolona tylko przez jeden wątek na raz. Za pomocą obiektu CMutex aby kontrolować połączonej listy, tylko jeden wątek jednocześnie mogą uzyskać dostęp do listy.

Aby użyć obiektu CMutex , konstruowania obiektu CMutex , gdy jest to konieczne. Określa nazwę obiektu mutex chcesz czekać, oraz że aplikacja początkowo powinien należeć ona. Następnie można uzyskać dostęp mutex podczas zwraca konstruktora. Wywołanie CSyncObject::Unlock , gdy skończysz uzyskiwania dostępu do zasobów kontrolowanych.

Alternatywną metodą za pomocą obiektów CMutex jest dodanie zmiennej typu CMutex jako członek danych do klasę, którą chcesz kontrolować. Podczas budowy kontrolowanych obiektu wywołanie konstruktora członek danych CMutex , określając jeśli mutex jest początkowo własnością, nazwa obiektu mutex (jeśli będzie używany przez granice procesu) i żądanego atrybutów zabezpieczeń.

Aby uzyskać dostęp do zasobów kontrolowanych przez obiekty CMutex w ten sposób, najpierw utworzyć zmienną albo typu CSingleLock lub CMultiLock w funkcji składowej dostępu użytkownika zasobu. Następnie wywołania obiektu kłódki Zablokuj Państwa funkcji (na przykład CSingleLock::Lock). W tym momencie Twój wątek będzie albo uzyskać dostęp do zasobu, czekać na zasób zwalniane i uzyskać dostęp lub opcje czekania na zasób powinien zostać wydany i limit czasu, nieudana próba uzyskania dostępu do zasobu. W każdym przypadku w sposób bezpieczny wątku obejrzano zasób. Aby zwolnić zasób, użyć obiektu blokady Unlock Państwa funkcji (na przykład CSingleLock::Unlock), lub pozwolić obiektu blokady mieszczą się poza zakresem.

Aby uzyskać więcej informacji na temat używania CMutex obiektów, zobacz artykuł Multithreading: używania klas synchronizacji w Visual C++ Programmer's Guide.

# include lt;afxmt.h>

Czło&nkowie klasy |nbsp; Klasa podstawowa | Wykres hierarchii

Próbki  MFC próbki MUTEKSY

Index