Compartir a través de


CriticalSection (clase)

Representa un objeto de sección crítica.

Sintaxis

class CriticalSection;

Miembros

Constructor

Nombre Descripción
CriticalSection::CriticalSection Inicializa un objeto de sincronización similar a un objeto mutex, pero solo los subprocesos de un proceso sencillo lo pueden usar.
CriticalSection::~CriticalSection Desinicializa y destruye el objeto CriticalSection actual.

Métodos públicos

Nombre Descripción
CriticalSection::IsValid Indica si la sección crítica actual es válida.
CriticalSection::Lock Espera la propiedad del objeto de sección crítica especificado. La función se devuelve cuando se concede la propiedad al subproceso que realiza la llamada.
CriticalSection::TryLock Intenta escribir una sección crítica sin bloqueo. Si la llamada se realiza correctamente, el subproceso que realiza la llamada toma posesión de la sección crítica.

Miembros de datos protegidos

Nombre Descripción
CriticalSection::cs_ Declara un miembro de datos de sección crítica.

Jerarquía de herencia

CriticalSection

Requisitos

Encabezado: corewrappers.h

Espacio de nombres: Microsoft::WRL::Wrappers

CriticalSection::~CriticalSection

Desinicializa y destruye el objeto CriticalSection actual.

WRL_NOTHROW ~CriticalSection();

CriticalSection::CriticalSection

Inicializa un objeto de sincronización similar a un objeto mutex, pero solo los subprocesos de un proceso sencillo lo pueden usar.

explicit CriticalSection(
   ULONG spincount = 0
);

Parámetros

spincount
El recuento de rotación para el objeto de la sección crítica. El valor predeterminado es 0.

Comentarios

Para obtener más información sobre secciones críticas y spincounts, consulte la InitializeCriticalSectionAndSpinCount función en la sección de la Synchronization documentación de la API de Windows.

CriticalSection::cs_

Declara un miembro de datos de sección crítica.

CRITICAL_SECTION cs_;

Comentarios

Este miembro de datos está protegido.

CriticalSection::IsValid

Indica si la sección crítica actual es válida.

bool IsValid() const;

Valor devuelto

De forma predeterminada, siempre devuelve true.

CriticalSection::Lock

Espera la propiedad del objeto de sección crítica especificado. La función se devuelve cuando se concede la propiedad al subproceso que realiza la llamada.

SyncLock Lock();

   static SyncLock Lock(
   _In_ CRITICAL_SECTION* cs
);

Parámetros

cs
Objeto de sección crítica especificado por el usuario.

Valor devuelto

Objeto de bloqueo que se puede usar para desbloquear la sección crítica actual.

Comentarios

La primera función Lock afecta al objeto de sección crítica actual. La segunda función Lock afecta a una sección crítica especificada por el usuario.

CriticalSection::TryLock

Intenta escribir una sección crítica sin bloqueo. Si la llamada se realiza correctamente, el subproceso que realiza la llamada toma posesión de la sección crítica.

SyncLock TryLock();

static SyncLock TryLock(
   _In_ CRITICAL_SECTION* cs
);

Parámetros

cs
Objeto de sección crítica especificado por el usuario.

Valor devuelto

Valor distinto de cero si la sección crítica se introduce correctamente o el subproceso actual ya posee la sección crítica. Cero si otro subproceso ya posee la sección crítica.

Comentarios

La primera función TryLock afecta al objeto de sección crítica actual. La segunda función TryLock afecta a una sección crítica especificada por el usuario.