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.