Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Reprezentuje obiekt sekcji krytycznej.
Składnia
class CriticalSection;
Elementy członkowskie
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.