Classe CComSingleThreadModel
Essa classe fornece métodos para incrementar e decrementar o valor de uma variável.
Sintaxe
class CComSingleThreadModel
Membros
Typedefs públicos
Nome | Descrição |
---|---|
CComSingleThreadModel::AutoCriticalSection | Classe de referências CComFakeCriticalSection. |
CComSingleThreadModel::CriticalSection | Classe de referência CComFakeCriticalSection . |
CComSingleThreadModel::ThreadModelNoCS | Referências CComSingleThreadModel . |
Métodos públicos
Nome | Descrição |
---|---|
CComSingleThreadModel::Decrement | Diminui o valor da variável especificada. Essa implementação não é thread-safe. |
CComSingleThreadModel::Increment | Incrementa o valor da variável especificada. Essa implementação não é thread-safe. |
Comentários
CComSingleThreadModel
fornece métodos para incrementar e decrementar o valor de uma variável. Ao contrário de CComMultiThreadModel e CComMultiThreadModelNoCS, esses métodos não são thread-safe.
Normalmente, você usa CComSingleThreadModel
por meio de um dos dois typedef
nomes, CComObjectThreadModel ou CComGlobalsThreadModel. A classe referenciada para cada typedef
depende do modelo de threading usado, conforme mostrado na tabela a seguir:
typedef | Modelo de threading simples | Modelo de threading de acomodações | Modelo de threading livre |
---|---|---|---|
CComObjectThreadModel |
S | S | M |
CComGlobalsThreadModel |
S | M | M |
S= CComSingleThreadModel
; M= CComMultiThreadModel
CComSingleThreadModel
em si define três nomes typedef
. ThreadModelNoCS
faz referência a CComSingleThreadModel
. AutoCriticalSection
e CriticalSection
referenciam a classe CComFakeCriticalSection, que fornece métodos vazios associados à obtenção e liberação da propriedade de uma seção crítica.
Requisitos
Cabeçalho: atlbase.h
CComSingleThreadModel::AutoCriticalSection
Ao usar CComSingleThreadModel
, o nome typedef
AutoCriticalSection
faz referência à classe CComFakeCriticalSection.
typedef CComFakeCriticalSection AutoCriticalSection;
Comentários
Por CComFakeCriticalSection
não fornecer uma seção crítica, seus métodos não fazem nada.
CComMultiThreadModel e CComMultiThreadModelNoCS contêm definições para AutoCriticalSection
. A seguinte tabela mostra a relação entre a classe de modelo de threading e a classe de seção crítica referenciada por AutoCriticalSection
:
Classe definida em | Classe referenciada |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Além de AutoCriticalSection
, você pode usar o nome typedef
CriticalSection. Você não deverá especificar AutoCriticalSection
em objetos globais ou membros de classe estática se quiser eliminar o código de inicialização CRT.
Exemplo
Confira CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::CriticalSection
Ao usar CComSingleThreadModel
, o nome typedef
CriticalSection
faz referência à classe CComFakeCriticalSection.
typedef CComFakeCriticalSection CriticalSection;
Comentários
Por CComFakeCriticalSection
não fornecer uma seção crítica, seus métodos não fazem nada.
CComMultiThreadModel e CComMultiThreadModelNoCS contêm definições para CriticalSection
. A seguinte tabela mostra a relação entre a classe de modelo de threading e a classe de seção crítica referenciada por CriticalSection
:
Classe definida em | Classe referenciada |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Além de CriticalSection
, você pode usar o nome typedef
AutoCriticalSection. Você não deverá especificar AutoCriticalSection
em objetos globais ou membros de classe estática se quiser eliminar o código de inicialização CRT.
Exemplo
Confira CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::Decrement
Essa função estática decrementa o valor da variável apontada por p.
static ULONG WINAPI Decrement(LPLONG p) throw();
Parâmetros
p
[entrada] Ponteiro para a variável a ser decrementada.
Valor de retorno
O resultado do decremento.
CComSingleThreadModel::Increment
Essa função estática incrementa o valor da variável apontada por p.
static ULONG WINAPI Increment(LPLONG p) throw();
Parâmetros
p
[entrada] Ponteiro para a variável a ser incrementada.
Valor de retorno
O resultado do incremento.
CComSingleThreadModel::ThreadModelNoCS
Ao usar CComSingleThreadModel
, o nome typedef
ThreadModelNoCS
simplesmente faz referência a CComSingleThreadModel
.
typedef CComSingleThreadModel ThreadModelNoCS;
Comentários
CComMultiThreadModel e CComMultiThreadModelNoCS contêm definições para ThreadModelNoCS
. A seguinte tabela mostra a relação entre a classe de modelo de threading e a classe referenciada por ThreadModelNoCS
:
Classe definida em | Classe referenciada |
---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Exemplo
Confira CComMultiThreadModel::AutoCriticalSection.