Sdílet prostřednictvím


CriticalSection – třída

Představuje objekt kritického oddílu.

Syntaxe

class CriticalSection;

Členové

Konstruktor

Název Popis
CriticalSection::CriticalSection Inicializuje synchronizační objekt, který je podobný objektu mutex, ale může být používán pouze vlákny jednoho procesu.
CriticalSection::~CriticalSection Deinicializuje a zničí aktuální CriticalSection objekt.

Veřejné metody

Název Popis
CriticalSection::IsValid Určuje, jestli je aktuální kritický oddíl platný.
CriticalSection::Lock Čeká na vlastnictví zadaného objektu kritického oddílu. Funkce se vrátí při udělení vlastnictví volajícího vlákna.
CriticalSection::TryLock Pokusí se zadat kritický oddíl bez blokování. Pokud je volání úspěšné, volající vlákno převezme vlastnictví kritického oddílu.

Chráněné datové členy

Název Popis
CriticalSection::cs_ Deklaruje datový člen kritického oddílu.

Hierarchie dědičnosti

CriticalSection

Požadavky

Hlavička: corewrappers.h

Obor názvů: Microsoft::WRL::Wrappers

CriticalSection::~CriticalSection

Deinicializuje a zničí aktuální CriticalSection objekt.

WRL_NOTHROW ~CriticalSection();

CriticalSection::CriticalSection

Inicializuje synchronizační objekt, který je podobný objektu mutex, ale může být používán pouze vlákny jednoho procesu.

explicit CriticalSection(
   ULONG spincount = 0
);

Parametry

číselník
Počet čísel pro objekt kritického oddílu. Výchozí hodnota je 0.

Poznámky

Další informace o důležitých oddílech a číselných počtech najdete InitializeCriticalSectionAndSpinCount v Synchronization části dokumentace k rozhraní API systému Windows.

CriticalSection::cs_

Deklaruje datový člen kritického oddílu.

CRITICAL_SECTION cs_;

Poznámky

Tento datový člen je chráněn.

CriticalSection::IsValid

Určuje, jestli je aktuální kritický oddíl platný.

bool IsValid() const;

Návratová hodnota

Ve výchozím nastavení vždy vrátí truehodnotu .

CriticalSection::Lock

Čeká na vlastnictví zadaného objektu kritického oddílu. Funkce se vrátí při udělení vlastnictví volajícího vlákna.

SyncLock Lock();

   static SyncLock Lock(
   _In_ CRITICAL_SECTION* cs
);

Parametry

Cs
Objekt kritického oddílu zadaný uživatelem.

Návratová hodnota

Zámek objektu, který lze použít k odemknutí aktuálního kritického oddílu.

Poznámky

První Lock funkce ovlivňuje aktuální objekt kritického oddílu. Druhá Lock funkce má vliv na kritickou část určenou uživatelem.

CriticalSection::TryLock

Pokusí se zadat kritický oddíl bez blokování. Pokud je volání úspěšné, volající vlákno převezme vlastnictví kritického oddílu.

SyncLock TryLock();

static SyncLock TryLock(
   _In_ CRITICAL_SECTION* cs
);

Parametry

Cs
Objekt kritického oddílu zadaný uživatelem.

Návratová hodnota

Nenulová hodnota, pokud je kritická část úspěšně zadána nebo aktuální vlákno již vlastní kritickou část. Nula, pokud už důležité oddíly vlastní jiné vlákno.

Poznámky

První TryLock funkce ovlivňuje aktuální objekt kritického oddílu. Druhá TryLock funkce má vliv na kritickou část určenou uživatelem.