Partilhar via


Classe CComSingleThreadModel

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.

Consulte também

Visão geral da classe