CComMultiThreadModel::AutoCriticalSection

typeDef CComAutoCriticalSection AutoCriticalSection;

Observaciones

Cuando se utiliza CComMultiThreadModel, el nombre de typedef AutoCriticalSection hace referencia a clase CComAutoCriticalSection, que proporciona métodos para obtener y liberar la propiedad de un objeto de la sección crítica.

CComSingleThreadModel y CComMultiThreadModelNoCS también contienen definiciones de AutoCriticalSection. La siguiente tabla muestra la relación entre la referencia de clase de sección crítica por AutoCriticalSection y la clase de modelo de subprocesamiento:

Clase definida en Clase hace referencia a
CComMultiThreadModel CComCriticalSection
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

Además de AutoCriticalSection, puede utilizar el nombre de typedef CriticalSection. No se debe especificar AutoCriticalSection en objetos globales o los miembros de la clase estática si desea eliminar el código de inicio de CRT.

Ejemplo

El código siguiente está tomado de CComObjectRootEx.

templatelt; clase ThreadModel >
clase CComObjectRootEx: CComObjectRootBase pública
{
público:
   TypeDef ThreadModel _ThreadModel;
   TypeDef _ThreadModel::AutoCriticalSection _CritSec;

ULONG InternalAddRef)
   {
      ...
      Return _ThreadModel::Increment(&m_dwRef);
   }
   ...
   anular (bloqueo) {m_critsec.() De bloqueo; }
   ...

privado:
   _CritSec m_critsec;

}

Las siguientes tablas muestran los resultados de los métodos InternalAddRef y bloqueo , dependiendo del parámetro de plantilla ThreadModel y el modelo de subprocesamiento utilizado por la aplicación:

ThreadModel = CComObjectThreadModel

Único o apartamento Libre
InternalAddRef El incremento no es segura para subprocesos. El incremento es segura para subprocesos.
Bloqueo No hace nada; no hay ninguna sección crítica para bloquear. La sección crítica está bloqueada.

ThreadModel = CComObjectThreadModel::ThreadModelNoCS

Único o apartamento Libre
InternalAddRef El incremento no es segura para subprocesos. El incremento es segura para subprocesos.
Bloqueo No hace nada; no hay ninguna sección crítica para bloquear. No hace nada; no hay ninguna sección crítica para bloquear.

Visió&n General de CComMultiThreadModel |nbsp; Miembros de clase

Vea tambiénnbsp;CComObjectThreadModel, CComGlobalsThreadModel, CComMultiThreadModel::ThreadModel&NoCS

Index