Freigeben über


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 E E M
CComGlobalsThreadModel E 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.

Siehe auch

Klassenübersicht