Klasa CCriticalSection
Reprezentuje "sekcji krytycznej" — obiekt synchronizacji, który umożliwia jeden wątek jednocześnie dostęp do zasobów lub sekcji kodu.
class CCriticalSection : public CSyncObject
Członkowie
Publiczne konstruktory
Nazwa |
Opis |
---|---|
Konstrukcje CCriticalSection obiektu. |
Metody publiczne
Nazwa |
Opis |
---|---|
Służy do uzyskiwania dostępu do CCriticalSection obiektu. |
|
Wydanie CCriticalSection obiektu. |
Podmioty publiczne
Nazwa |
Opis |
---|---|
Pobiera wskaźnik do wewnętrznego CRITICAL_SECTION obiektu. |
Publiczne danych członków
Nazwa |
Opis |
---|---|
A CRITICAL_SECTION obiektu. |
Uwagi
Sekcje krytyczne 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ą CCriticalSection obiektu do sterowania połączonej listy tylko jeden wątek na raz można uzyskać dostęp do listy.
[!UWAGA]
Funkcje CCriticalSection klasy jest dostarczana przez rzeczywiste Win32 CRITICAL_SECTION obiektu.
Sekcje krytyczne są używane zamiast muteksy (zobacz CMutex) gdy prędkość jest krytyczna i zasobu nie będzie używany przez granice procesu.
Istnieją dwie metody za pomocą CCriticalSection obiekt: autonomiczne i osadzone w klasie.
Autonomiczny autonomicznych metodę CCriticalSection obiektów, skonstruować CCriticalSection obiektu, gdy jest potrzebna.Po pomyślnym powrocie z konstruktora, jawnie zablokować wywołania obiektu blokady.Wywołanie Unlock po zakończeniu dostęp do sekcji krytycznej.Ta metoda podczas jaśniejszym, aby osoba czytająca Twój kod źródłowy jest bardziej podatne na błędy, jak należy pamiętać o blokowanie i odblokowywanie sekcji krytycznej, przed i po dostępu.
Metodą bardziej pożądane jest wykorzystanie CSingleLock klasy.Posiada także Lock i Unlock metody, ale nie trzeba się martwić o odblokowanie zasobu, jeśli wystąpi wyjątek.
Metoda klasy można współużytkować z wielu wątków, dodając osadzone CCriticalSection-członek danych typu klasy i blokowanie członka danych, gdy są potrzebne.
Aby uzyskać więcej informacji na temat używania CCriticalSection obiektów, zobacz artykuł Multithreading: jak używać klasy synchronizacji.
Hierarchii dziedziczenia
CCriticalSection
Wymagania
Nagłówek: afxmt.h