Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta classe fornece métodos para incrementar e decrementar o valor de uma variável.
Sintaxe
class CComSingleThreadModel
Membros
Definições de Tipos Públicas
| Nome | Description |
|---|---|
| CComSingleThreadModel::AutoCriticalSection | Classe de referências CComFakeCriticalSection. |
| CComSingleThreadModel::Secção Crítica | Classe CComFakeCriticalSectionde referências . |
| CComSingleThreadModel::ThreadModelNoCS | Referências CComSingleThreadModel. |
Métodos Públicos
| Nome | Description |
|---|---|
| CComSingleThreadModel::D ecrement | Diminui o valor da variável especificada. Esta implementação não é segura para threads. |
| CComSingleThreadModel::Increment | Incrementa o valor da variável especificada. Esta implementação não é segura para threads. |
Observações
CComSingleThreadModel fornece métodos para incrementar e decrementar o valor de uma variável. Ao contrário do CComMultiThreadModel e do CComMultiThreadModelNoCS, estes métodos não são seguros para threads.
Normalmente, utiliza-se CComSingleThreadModel através de dois typedef nomes, CComObjectThreadModel ou CComGlobalsThreadModel. A classe referenciada por cada typedef um depende do modelo de threading utilizado, como mostrado na tabela seguinte:
| typedef | Modelo de rosca única | Modelo de roscagem para apartamentos | Modelo de rosca livre |
|---|---|---|---|
CComObjectThreadModel |
S | S | Seg |
CComGlobalsThreadModel |
S | Seg | Seg |
S= CComSingleThreadModel; M= CComMultiThreadModel
CComSingleThreadModel ele próprio define três typedef nomes.
ThreadModelNoCS referências CComSingleThreadModela .
AutoCriticalSection e CriticalSection a classe de referência CComFakeCriticalSection, que fornece métodos vazios associados à obtenção e libertação da propriedade de uma secção crítica.
Requerimentos
Cabeçalho: atlbase.h
CComSingleThreadModel::AutoCriticalSection
Ao usar CComSingleThreadModel, o typedef nome AutoCriticalSection faz referência à classe CComFakeCriticalSection.
typedef CComFakeCriticalSection AutoCriticalSection;
Observações
Como CComFakeCriticalSection não fornece uma secção crítica, os seus métodos não fazem nada.
CComMultiThreadModel e CComMultiThreadModelNoCS contêm definições para AutoCriticalSection. A tabela seguinte mostra a relação entre a classe do modelo de threading e a classe de secção crítica referenciada por AutoCriticalSection:
| Classe definida em | Classe referida |
|---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Além de AutoCriticalSection, pode usar o typedef nome Secção Crítica. Não deve especificar AutoCriticalSection em objetos globais ou membros estáticos da classe se quiser eliminar o código de arranque do CRT.
Example
Veja CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::Secção Crítica
Ao usar CComSingleThreadModel, o typedef nome CriticalSection faz referência à classe CComFakeCriticalSection.
typedef CComFakeCriticalSection CriticalSection;
Observações
Como CComFakeCriticalSection não fornece uma secção crítica, os seus métodos não fazem nada.
CComMultiThreadModel e CComMultiThreadModelNoCS contêm definições para CriticalSection. A tabela seguinte mostra a relação entre a classe do modelo de threading e a classe de secção crítica referenciada por CriticalSection:
| Classe definida em | Classe referida |
|---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Além de CriticalSection, pode usar o typedef nome AutoCriticalSection. Não deve especificar AutoCriticalSection em objetos globais ou membros estáticos da classe se quiser eliminar o código de arranque do CRT.
Example
Veja CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::D ecrement
Esta função estática decremente o valor da variável apontada por p.
static ULONG WINAPI Decrement(LPLONG p) throw();
Parâmetros
p
[dentro] Apontar para a variável a decrementar.
Valor de retorno
O resultado da decrementação.
CComSingleThreadModel::Increment
Esta função estática incrementa o valor da variável apontada por p.
static ULONG WINAPI Increment(LPLONG p) throw();
Parâmetros
p
[dentro] Apontar para a variável a ser incrementada.
Valor de retorno
O resultado do incremento.
CComSingleThreadModel::ThreadModelNoCS
Ao usar CComSingleThreadModel, o typedef nome ThreadModelNoCS simplesmente faz referência CComSingleThreadModela .
typedef CComSingleThreadModel ThreadModelNoCS;
Observações
CComMultiThreadModel e CComMultiThreadModelNoCS contêm definições para ThreadModelNoCS. A tabela seguinte mostra a relação entre a classe do modelo de threading e a classe referenciada por ThreadModelNoCS:
| Classe definida em | Classe referida |
|---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Example
Veja CComMultiThreadModel::AutoCriticalSection.