Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Knihovna ATL (Active Template Library) se nadále podporuje. Už ale nepřidáme funkce ani aktualizujeme dokumentaci.
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í CComSingleThreadModelodkazuje 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 AutoCriticalSectionodkazuje:
| Třída definovaná v | Odkazovaná třída |
|---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Kromě AutoCriticalSectiontoho 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í CComSingleThreadModelodkazuje 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 CriticalSectionodkazuje:
| 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í CComSingleThreadModelse název typedefThreadModelNoCS 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 ThreadModelNoCSodkazuje:
| Třída definovaná v | Odkazovaná třída |
|---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Příklad
Viz CComMultiThreadModel::AutoCriticalSection.