Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Klasse stellt Methoden zum Erhöhen und Verringern des Werts einer Variablen bereit.
Syntax
class CComSingleThreadModel
Member
Öffentliche Typedefs
| Name | Beschreibung |
|---|---|
| CComSingleThreadModel::AutoCriticalSection | References-Klasse CComFakeCriticalSection. |
| CComSingleThreadModel::CriticalSection | References-Klasse CComFakeCriticalSection. |
| CComSingleThreadModel::ThreadModelNoCS | Verweise CComSingleThreadModel. |
Öffentliche Methoden
| Name | Beschreibung |
|---|---|
| CComSingleThreadModel::D ecrement | Erhöht den Wert der angegebenen Variablen. Diese Implementierung ist nicht threadsicher. |
| CComSingleThreadModel::Increment | Erhöht den Wert der angegebenen Variablen. Diese Implementierung ist nicht threadsicher. |
Hinweise
CComSingleThreadModel stellt Methoden zum Inkrementieren und Verringern des Werts einer Variablen bereit. Im Gegensatz zu CComMultiThreadModel und CComMultiThreadModelNoCS sind diese Methoden nicht threadsicher.
In der Regel verwenden CComSingleThreadModel Sie einen von zwei typedef Namen, entweder CComObjectThreadModel oder CComGlobalsThreadModel. Die klasse, auf die von jedem typedef verwiesen wird, hängt vom verwendeten Threadingmodell ab, wie in der folgenden Tabelle dargestellt:
| typedef | Einzelthreadingmodell | Apartmentthreadingmodell | Kostenloses Threadingmodell |
|---|---|---|---|
CComObjectThreadModel |
S | S | M |
CComGlobalsThreadModel |
S | M | M |
S= CComSingleThreadModel; M= CComMultiThreadModel
CComSingleThreadModel selbst definiert drei typedef Namen. ThreadModelNoCS verweise CComSingleThreadModel. AutoCriticalSection und CriticalSection Referenzklasse CComFakeCriticalSection, die leere Methoden zum Abrufen und Freigeben des Besitzes eines kritischen Abschnitts bereitstellt.
Anforderungen
Kopfzeile: atlbase.h
CComSingleThreadModel::AutoCriticalSection
Bei Verwendung CComSingleThreadModelverweist der Name AutoCriticalSection auf die typedef Klasse CComFakeCriticalSection.
typedef CComFakeCriticalSection AutoCriticalSection;
Hinweise
Da CComFakeCriticalSection kein kritischer Abschnitt bereitgestellt wird, tun die Methoden nichts.
CComMultiThreadModel und CComMultiThreadModelNoCS enthalten Definitionen für AutoCriticalSection. Die folgende Tabelle zeigt die Beziehung zwischen der Threadingmodellklasse und der kritischen Abschnittsklasse, auf die verwiesen wird:AutoCriticalSection
| Klasse definiert in | Auf die Klasse verwiesen wird |
|---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Zusätzlich dazu AutoCriticalSectionkönnen Sie den typedef Namen CriticalSection verwenden. Sie sollten nicht in globalen Objekten oder statischen Klassenmitgliedern angeben AutoCriticalSection , wenn Sie den CRT-Startcode entfernen möchten.
Beispiel
Siehe CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::CriticalSection
Bei Verwendung CComSingleThreadModelverweist der Name CriticalSection auf die typedef Klasse CComFakeCriticalSection.
typedef CComFakeCriticalSection CriticalSection;
Hinweise
Da CComFakeCriticalSection kein kritischer Abschnitt bereitgestellt wird, tun die Methoden nichts.
CComMultiThreadModel und CComMultiThreadModelNoCS enthalten Definitionen für CriticalSection. Die folgende Tabelle zeigt die Beziehung zwischen der Threadingmodellklasse und der kritischen Abschnittsklasse, auf die verwiesen wird:CriticalSection
| Klasse definiert in | Auf die Klasse verwiesen wird |
|---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Zusätzlich dazu CriticalSectionkönnen Sie den typedef Namen AutoCriticalSection verwenden. Sie sollten nicht in globalen Objekten oder statischen Klassenmitgliedern angeben AutoCriticalSection , wenn Sie den CRT-Startcode entfernen möchten.
Beispiel
Siehe CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::D ecrement
Diese statische Funktion erhöht den Wert der Variablen, auf die von p verwiesen wird.
static ULONG WINAPI Decrement(LPLONG p) throw();
Parameter
p
[in] Zeiger auf die Variable, die dekrementiert werden soll.
Rückgabewert
Das Ergebnis der Dekrementierung.
CComSingleThreadModel::Increment
Diese statische Funktion erhöht den Wert der Variablen, auf die von p verwiesen wird.
static ULONG WINAPI Increment(LPLONG p) throw();
Parameter
p
[in] Zeiger auf die Variable, die erhöht werden soll.
Rückgabewert
Das Ergebnis des Inkrements.
CComSingleThreadModel::ThreadModelNoCS
Bei Verwendung CComSingleThreadModelverweist der typedef Name ThreadModelNoCS einfach auf CComSingleThreadModel.
typedef CComSingleThreadModel ThreadModelNoCS;
Hinweise
CComMultiThreadModel und CComMultiThreadModelNoCS enthalten Definitionen für ThreadModelNoCS. Die folgende Tabelle zeigt die Beziehung zwischen der Threadingmodellklasse und der Klasse, auf die verwiesen wird:ThreadModelNoCS
| Klasse definiert in | Auf die Klasse verwiesen wird |
|---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Beispiel
Siehe CComMultiThreadModel::AutoCriticalSection.