Udostępnij za pośrednictwem


CriticalSection — Klasa

Reprezentuje obiekt sekcji krytycznej.

Składnia

class CriticalSection;

Członkowie

Konstruktor

Nazwa/nazwisko opis
CriticalSection::CriticalSection Inicjuje obiekt synchronizacji podobny do obiektu mutex, ale może być używany tylko przez wątki pojedynczego procesu.
CriticalSection::~CriticalSection Deinitializuje i niszczy bieżący CriticalSection obiekt.

Metody publiczne

Nazwa/nazwisko opis
CriticalSection::IsValid Wskazuje, czy bieżąca sekcja krytyczna jest prawidłowa.
CriticalSection::Lock Czeka na własność określonego obiektu sekcji krytycznej. Funkcja zwraca wartość, gdy wątek wywołujący otrzymuje własność.
CriticalSection::TryLock Próbuje wprowadzić sekcję krytyczną bez blokowania. Jeśli wywołanie zakończy się pomyślnie, wątek wywołujący przejmuje własność sekcji krytycznej.

Chronione składowe danych

Nazwa/nazwisko opis
CriticalSection::cs_ Deklaruje element członkowski danych sekcji krytycznej.

Hierarchia dziedziczenia

CriticalSection

Wymagania

Nagłówek: corewrappers.h

Przestrzeń nazw: Microsoft::WRL::Wrappers

CriticalSection::~CriticalSection

Deinitializuje i niszczy bieżący CriticalSection obiekt.

WRL_NOTHROW ~CriticalSection();

CriticalSection::CriticalSection

Inicjuje obiekt synchronizacji podobny do obiektu mutex, ale może być używany tylko przez wątki pojedynczego procesu.

explicit CriticalSection(
   ULONG spincount = 0
);

Parametry

spincount
Liczba spinów dla obiektu sekcji krytycznej. Wartość domyślna to 0.

Uwagi

Aby uzyskać więcej informacji na temat krytycznych sekcji i spincounts, zobacz InitializeCriticalSectionAndSpinCount funkcję w Synchronization sekcji dokumentacji interfejsu API systemu Windows.

CriticalSection::cs_

Deklaruje element członkowski danych sekcji krytycznej.

CRITICAL_SECTION cs_;

Uwagi

Ten element członkowski danych jest chroniony.

CriticalSection::IsValid

Wskazuje, czy bieżąca sekcja krytyczna jest prawidłowa.

bool IsValid() const;

Wartość zwracana

Domyślnie zawsze zwraca wartość true.

CriticalSection::Lock

Czeka na własność określonego obiektu sekcji krytycznej. Funkcja zwraca wartość, gdy wątek wywołujący otrzymuje własność.

SyncLock Lock();

   static SyncLock Lock(
   _In_ CRITICAL_SECTION* cs
);

Parametry

Cs
Obiekt sekcji krytycznej określony przez użytkownika.

Wartość zwracana

Obiekt blokady, który może służyć do odblokowania bieżącej sekcji krytycznej.

Uwagi

Pierwsza Lock funkcja ma wpływ na bieżący obiekt sekcji krytycznej. Lock Druga funkcja ma wpływ na sekcję krytyczną określoną przez użytkownika.

CriticalSection::TryLock

Próbuje wprowadzić sekcję krytyczną bez blokowania. Jeśli wywołanie zakończy się pomyślnie, wątek wywołujący przejmuje własność sekcji krytycznej.

SyncLock TryLock();

static SyncLock TryLock(
   _In_ CRITICAL_SECTION* cs
);

Parametry

Cs
Obiekt sekcji krytycznej określony przez użytkownika.

Wartość zwracana

Wartość niezerowa, jeśli sekcja krytyczna została pomyślnie wprowadzona lub bieżący wątek jest już właścicielem sekcji krytycznej. Zero, jeśli inny wątek jest już właścicielem sekcji krytycznej.

Uwagi

Pierwsza TryLock funkcja ma wpływ na bieżący obiekt sekcji krytycznej. TryLock Druga funkcja ma wpływ na sekcję krytyczną określoną przez użytkownika.