Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.