Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.