Partage via


CComSingleThreadModel, classe

Cette classe fournit des méthodes pour incrémenter et décrémenter la valeur d’une variable.

Syntaxe

class CComSingleThreadModel

Membres

Typedefs publics

Nom Description
CComSingleThreadModel ::AutoCriticalSection Classe References CComFakeCriticalSection.
CComSingleThreadModel ::CriticalSection CComFakeCriticalSectionClasse References .
CComSingleThreadModel ::ThreadModelNoCS Références CComSingleThreadModel.

Méthodes publiques

Nom Description
CComSingleThreadModel ::D ecrement Décrémente la valeur de la variable spécifiée. Cette implémentation n’est pas thread-safe.
CComSingleThreadModel ::Increment Incrémente la valeur de la variable spécifiée. Cette implémentation n’est pas thread-safe.

Notes

CComSingleThreadModel fournit des méthodes pour incrémenter et décrémenter la valeur d’une variable. Contrairement à CComMultiThreadModel et CComMultiThreadModelNoCS, ces méthodes ne sont pas thread-safe.

En règle générale, vous utilisez CComSingleThreadModel l’un des deux typedef noms, CComObjectThreadModel ou CComGlobalsThreadModel. La classe référencée par chacun typedef dépend du modèle de threading utilisé, comme indiqué dans le tableau suivant :

typedef Modèle de thread unique Modèle de thread d’appartement Modèle de thread libre
CComObjectThreadModel S S M
CComGlobalsThreadModel S M M

S= CComSingleThreadModel; M= CComMultiThreadModel

CComSingleThreadModel lui-même définit trois typedef noms. ThreadModelNoCS référence CComSingleThreadModel. AutoCriticalSection et CriticalSection la classe de référence CComFakeCriticalSection, qui fournit des méthodes vides associées à l’obtention et à la libération de la propriété d’une section critique.

Spécifications

En-tête : atlbase.h

CComSingleThreadModel ::AutoCriticalSection

Lors de l’utilisationCComSingleThreadModel, le nom AutoCriticalSection fait référence à la typedef classe CComFakeCriticalSection.

typedef CComFakeCriticalSection AutoCriticalSection;

Notes

Étant donné que CComFakeCriticalSection ne fournit pas de section critique, ses méthodes ne font rien.

CComMultiThreadModel et CComMultiThreadModelNoCS contiennent des définitions pour AutoCriticalSection. Le tableau suivant montre la relation entre la classe de modèle de threading et la classe de section critique référencée par AutoCriticalSection:

Classe définie dans Classe référencée
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComAutoCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

En plus de AutoCriticalSection, vous pouvez utiliser le typedef nom CriticalSection. Vous ne devez pas spécifier AutoCriticalSection dans les objets globaux ou les membres de classe statique si vous souhaitez éliminer le code de démarrage CRT.

Exemple

Voir CComMultiThreadModel ::AutoCriticalSection.

CComSingleThreadModel ::CriticalSection

Lors de l’utilisationCComSingleThreadModel, le nom CriticalSection fait référence à la typedef classe CComFakeCriticalSection.

typedef CComFakeCriticalSection CriticalSection;

Notes

Étant donné que CComFakeCriticalSection ne fournit pas de section critique, ses méthodes ne font rien.

CComMultiThreadModel et CComMultiThreadModelNoCS contiennent des définitions pour CriticalSection. Le tableau suivant montre la relation entre la classe de modèle de threading et la classe de section critique référencée par CriticalSection:

Classe définie dans Classe référencée
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

En plus CriticalSectionde , vous pouvez utiliser le typedef nom AutoCriticalSection. Vous ne devez pas spécifier AutoCriticalSection dans les objets globaux ou les membres de classe statique si vous souhaitez éliminer le code de démarrage CRT.

Exemple

Voir CComMultiThreadModel ::AutoCriticalSection.

CComSingleThreadModel ::D ecrement

Cette fonction statique décrémente la valeur de la variable pointée par p.

static ULONG WINAPI Decrement(LPLONG p) throw();

Paramètres

p
[in] Pointeur vers la variable à décrémenter.

Valeur de retour

Résultat de la décrémentation.

CComSingleThreadModel ::Increment

Cette fonction statique incrémente la valeur de la variable pointée par p.

static ULONG WINAPI Increment(LPLONG p) throw();

Paramètres

p
[in] Pointeur vers la variable à incrémenter.

Valeur de retour

Résultat de l’incrément.

CComSingleThreadModel ::ThreadModelNoCS

Lors de l’utilisation CComSingleThreadModel, le typedef nom ThreadModelNoCS fait simplement référence CComSingleThreadModel.

typedef CComSingleThreadModel ThreadModelNoCS;

Notes

CComMultiThreadModel et CComMultiThreadModelNoCS contiennent des définitions pour ThreadModelNoCS. Le tableau suivant montre la relation entre la classe de modèle de threading et la classe référencée par ThreadModelNoCS:

Classe définie dans Classe référencée
CComSingleThreadModel CComSingleThreadModel
CComMultiThreadModel CComMultiThreadModelNoCS
CComMultiThreadModelNoCS CComMultiThreadModelNoCS

Exemple

Voir CComMultiThreadModel ::AutoCriticalSection.

Voir aussi

Vue d’ensemble de la classe