Compartir a través de


Clase de CCriticalSection

Representa una “sección crítica” — un objeto de sincronización que permite que un subproceso cada vez tenga acceso a un recurso o a una sección de código.

class CCriticalSection : public CSyncObject

Members

h5zew56b.collapse_all(es-es,VS.110).gifConstructores públicos

Name

Descripción

CCriticalSection::CCriticalSection

Crea un objeto CCriticalSection.

h5zew56b.collapse_all(es-es,VS.110).gifMétodos públicos

Name

Descripción

CCriticalSection::Lock

Utilice para obtener acceso al objeto de CCriticalSection .

CCriticalSection::Unlock

Libera el objeto de CCriticalSection .

h5zew56b.collapse_all(es-es,VS.110).gifOperadores públicos

Name

Descripción

CCriticalSection::operator CRITICAL_SECTION*

Recupera un puntero al objeto interno de CRITICAL_SECTION .

h5zew56b.collapse_all(es-es,VS.110).gifMiembros de datos públicos

Name

Descripción

CCriticalSection::m_sect

un objeto de CRITICAL_SECTION .

Comentarios

Las secciones críticas son útiles cuando sólo un subproceso cada vez se puede permitir modificar datos o a otro recurso controlado.Por ejemplo, agregar nodos a una lista vinculada es un proceso que se debe permitir únicamente por un subproceso cada vez.Utilizando un objeto de CCriticalSection para controlar la lista vinculada, solo un subproceso a la vez puede obtener acceso a la lista.

[!NOTA]

La funcionalidad de la clase de CCriticalSection proporcionan un objeto real de Win32 CRITICAL_SECTION .

Las secciones críticas se utilizan en lugar de exclusiones mutuas (vea CMutex) cuando la velocidad es crítica y no se utilizará el recurso a través de límites de procesos.

Hay dos métodos para utilizar un objeto de CCriticalSection : independiente y incrustado en una clase.

  • El método independiente para utilizar un objeto independiente de CCriticalSection , construye el objeto de CCriticalSection cuando es necesario.Después de que un retorno correcto de constructor, explícitamente bloquea el objeto con una llamada a bloqueo.Llame a Unlock cuando termine teniendo acceso a la sección crítica.Este método, mientras que de alguien que lee el código fuente, es un error más propenso como debe recordar bloquear y desbloquear la sección crítica antes y después de acceso.

    un método más preferible es utilizar la clase de CSingleLock .También tiene un método de Lock y de Unlock , pero no tiene que preocuparse de desbloquear el recurso si se produce una excepción.

  • El método incrustado también puede compartir una clase con varios subprocesos agregando CCriticalSection- escriba el miembro de datos a la clase y a bloquear el miembro de datos cuando sea necesario.

Para obtener más información sobre cómo utilizar los objetos de CCriticalSection , vea el artículo Multithreading: Cómo utilizar las clases de sincronización.

Jerarquía de herencia

CObject

CSyncObject

CCriticalSection

Requisitos

encabezado: afxmt.h

Vea también

Referencia

Clase de CSyncObject

Gráfico de jerarquía

Clase de CMutex