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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla