Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.