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 | CComFakeCriticalSection Classe 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 CriticalSection
de , 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.