CComSingleThreadModel-Klasse
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 CComSingleThreadModel
verweist 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 AutoCriticalSection
kö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 CComSingleThreadModel
verweist 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 CriticalSection
kö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 CComSingleThreadModel
verweist 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.