CComSingleThreadModel – třída
Tato třída poskytuje metody pro zvýšení a snížení hodnoty proměnné.
Syntaxe
class CComSingleThreadModel
Členové
Veřejné definice typedef
Název | Popis |
---|---|
CComSingleThreadModel::AutoCriticalSection | Odkazuje na třídu CComFakeCriticalSection. |
CComSingleThreadModel::CriticalSection | Odkazy – třída CComFakeCriticalSection . |
CComSingleThreadModel::ThreadModelNoCS | Odkazy CComSingleThreadModel . |
Veřejné metody
Název | Popis |
---|---|
CComSingleThreadModel::D ecrement | Sníží hodnotu zadané proměnné. Tato implementace není bezpečná pro přístup z více vláken. |
CComSingleThreadModel::Increment | Zvýší hodnotu zadané proměnné. Tato implementace není bezpečná pro přístup z více vláken. |
Poznámky
CComSingleThreadModel
poskytuje metody pro zvýšení a snížení hodnoty proměnné. Na rozdíl od CComMultiThreadModel a CComMultiThreadModelNoCS tyto metody nejsou bezpečné pro přístup z více vláken.
Obvykle používáte CComSingleThreadModel
jeden ze dvou typedef
názvů, buď CComObjectThreadModel nebo CComGlobalsThreadModel. Třída odkazovaná jednotlivými typedef
třídami závisí na použitém modelu vláken, jak je znázorněno v následující tabulce:
– definice typedef | Model s jedním vláknem | Model podprocesů bytu | Model bezplatného podprocesu |
---|---|---|---|
CComObjectThreadModel |
S | S | M |
CComGlobalsThreadModel |
S | M | M |
S= CComSingleThreadModel
; M= CComMultiThreadModel
CComSingleThreadModel
sama definuje tři typedef
názvy. ThreadModelNoCS
odkazy CComSingleThreadModel
. AutoCriticalSection
a CriticalSection
referenční třída CComFakeCriticalSection, která poskytuje prázdné metody spojené se získáním a uvolněním vlastnictví kritické části.
Požadavky
Hlavička: atlbase.h
CComSingleThreadModel::AutoCriticalSection
Při použití CComSingleThreadModel
odkazuje na typedef
název AutoCriticalSection
třídy CComFakeCriticalSection.
typedef CComFakeCriticalSection AutoCriticalSection;
Poznámky
Protože CComFakeCriticalSection
neposkytuje kritickou část, její metody nedělají nic.
CComMultiThreadModel a CComMultiThreadModelNoCS obsahují definice pro AutoCriticalSection
. Následující tabulka ukazuje vztah mezi třídou modelu threadingu a kritickou třídou oddílu, na kterou AutoCriticalSection
odkazuje:
Třída definovaná v | Odkazovaná třída |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Kromě AutoCriticalSection
toho můžete použít typedef
název CriticalSection. Pokud chcete odstranit spouštěcí kód CRT, neměli byste je zadávat AutoCriticalSection
v globálních objektech ani ve statických členech třídy.
Příklad
Viz CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::CriticalSection
Při použití CComSingleThreadModel
odkazuje na typedef
název CriticalSection
třídy CComFakeCriticalSection.
typedef CComFakeCriticalSection CriticalSection;
Poznámky
Protože CComFakeCriticalSection
neposkytuje kritickou část, její metody nedělají nic.
CComMultiThreadModel a CComMultiThreadModelNoCS obsahují definice pro CriticalSection
. Následující tabulka ukazuje vztah mezi třídou modelu threadingu a kritickou třídou oddílu, na kterou CriticalSection
odkazuje:
Třída definovaná v | Odkazovaná třída |
---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Kromě CriticalSection
, můžete použít typedef
název AutoCriticalSection. Pokud chcete odstranit spouštěcí kód CRT, neměli byste je zadávat AutoCriticalSection
v globálních objektech ani ve statických členech třídy.
Příklad
Viz CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::D ecrement
Tato statická funkce dekrementuje hodnotu proměnné, na kterou odkazuje p.
static ULONG WINAPI Decrement(LPLONG p) throw();
Parametry
p
[v] Ukazatel na proměnnou, která se má dekrementovat.
Návratová hodnota
Výsledek dekrementu.
CComSingleThreadModel::Increment
Tato statická funkce zvýší hodnotu proměnné, na kterou odkazuje p.
static ULONG WINAPI Increment(LPLONG p) throw();
Parametry
p
[v] Ukazatel na proměnnou, která se má zvýšit.
Návratová hodnota
Výsledek přírůstku.
CComSingleThreadModel::ThreadModelNoCS
Při použití CComSingleThreadModel
se název typedef
ThreadModelNoCS
jednoduše odkazuje CComSingleThreadModel
.
typedef CComSingleThreadModel ThreadModelNoCS;
Poznámky
CComMultiThreadModel a CComMultiThreadModelNoCS obsahují definice pro ThreadModelNoCS
. Následující tabulka ukazuje vztah mezi třídou modelu threadingu a třídou, na kterou ThreadModelNoCS
odkazuje:
Třída definovaná v | Odkazovaná třída |
---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Příklad
Viz CComMultiThreadModel::AutoCriticalSection.