Compartir a través de


Clase CComSingleThreadModel

Esta clase proporciona métodos para incrementar y decrementar el valor de una variable.

Sintaxis

class CComSingleThreadModel

Miembros

Definiciones de tipos públicas

Nombre Descripción
CComSingleThreadModel::AutoCriticalSection Hace referencia a la clase CComFakeCriticalSection.
CComSingleThreadModel::CriticalSection Hace referencia a la clase CComFakeCriticalSection.
CComSingleThreadModel::ThreadModelNoCS Hace referencia a CComSingleThreadModel.

Métodos públicos

Nombre Descripción
CComSingleThreadModel::Decrement Decrementa el valor de la variable especificada. Esta implementación no es segura para subprocesos.
CComSingleThreadModel::Increment Incrementa el valor de la variable especificada. Esta implementación no es segura para subprocesos.

Comentarios

CComSingleThreadModel proporciona métodos para incrementar y decrementar el valor de una variable. A diferencia de CComMultiThreadModel y CComMultiThreadModelNoCS, estos métodos no son seguros para subprocesos.

Normalmente, se usa CComSingleThreadModel mediante uno de los dos nombres de typedef, ya sea CComObjectThreadModel o CComGlobalsThreadModel. La clase a la que hace referencia cada typedef depende del modelo de subprocesos usado, como se muestra en la tabla siguiente:

typedef Modelo de subprocesos único Modelo de subprocesos de apartamento Modelo de subprocesos libre
CComObjectThreadModel S S M
CComGlobalsThreadModel S M M

S= CComSingleThreadModel; M= CComMultiThreadModel

CComSingleThreadModel como tal define tres nombres de typedef. ThreadModelNoCS hace referencia a CComSingleThreadModel. AutoCriticalSection y CriticalSection hacen referencia a la clase CComFakeCriticalSection, que proporciona métodos vacíos asociados a la obtención y a la liberación de una sección crítica.

Requisitos

Encabezado: atlbase.h

CComSingleThreadModel::AutoCriticalSection

Cuando se usa CComSingleThreadModel, el nombre de typedef AutoCriticalSection hace referencia a la clase CComFakeCriticalSection.

typedef CComFakeCriticalSection AutoCriticalSection;

Comentarios

Como CComFakeCriticalSection no proporciona una sección crítica, sus métodos no hacen nada.

CComMultiThreadModel y CComMultiThreadModelNoCS contienen definiciones para AutoCriticalSection. En la tabla siguiente se muestra la relación entre la clase de modelo de subprocesos y la clase de sección crítica a la que hace referencia AutoCriticalSection:

Clase definida en Clase a la que se hace referencia
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComAutoCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

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

Ejemplo

Consulte CComMultiThreadModel::AutoCriticalSection.

CComSingleThreadModel::CriticalSection

Cuando se usa CComSingleThreadModel, el nombre de typedef CriticalSection hace referencia a la clase CComFakeCriticalSection.

typedef CComFakeCriticalSection CriticalSection;

Comentarios

Como CComFakeCriticalSection no proporciona una sección crítica, sus métodos no hacen nada.

CComMultiThreadModel y CComMultiThreadModelNoCS contienen definiciones para CriticalSection. En la tabla siguiente se muestra la relación entre la clase de modelo de subprocesos y la clase de sección crítica a la que hace referencia CriticalSection:

Clase definida en Clase a la que se hace referencia
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

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

Ejemplo

Consulte CComMultiThreadModel::AutoCriticalSection.

CComSingleThreadModel::Decrement

Esta función estática decrementa el valor de la variable a la que apunta p.

static ULONG WINAPI Decrement(LPLONG p) throw();

Parámetros

p
[in] Puntero a la variable que se va a disminuir.

Valor devuelto

El resultado del decremento.

CComSingleThreadModel::Increment

Esta función estática incrementa el valor de la variable a la que apunta p.

static ULONG WINAPI Increment(LPLONG p) throw();

Parámetros

p
[in] Puntero a la variable que se va a aumentar.

Valor devuelto

El resultado del incremento.

CComSingleThreadModel::ThreadModelNoCS

Al usar CComSingleThreadModel, el nombre de typedef ThreadModelNoCS simplemente hace referencia a CComSingleThreadModel.

typedef CComSingleThreadModel ThreadModelNoCS;

Comentarios

CComMultiThreadModel y CComMultiThreadModelNoCS contienen definiciones para ThreadModelNoCS. En la tabla siguiente se muestra la relación entre la clase de modelo de subprocesos y la clase a la que hace referencia ThreadModelNoCS:

Clase definida en Clase a la que se hace referencia
CComSingleThreadModel CComSingleThreadModel
CComMultiThreadModel CComMultiThreadModelNoCS
CComMultiThreadModelNoCS CComMultiThreadModelNoCS

Ejemplo

Consulte CComMultiThreadModel::AutoCriticalSection.

Consulte también

Información general sobre la clase