Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze klasse biedt methoden voor het verhogen en verlagen van de waarde van een variabele.
Syntaxis
class CComSingleThreadModel
Leden
Openbare typedefs
| Naam | Description |
|---|---|
| CComSingleThreadModel::AutoCriticalSection | Verwijst naar klasse CComFakeCriticalSection. |
| CComSingleThreadModel::CriticalSection | Verwijzingsklasse CComFakeCriticalSection. |
| CComsingleThreadModel::ThreadModelNoCS | Verwijzingen CComSingleThreadModel. |
Openbare methoden
| Naam | Description |
|---|---|
| CComSingleThreadModel::D ecrement | De waarde van de opgegeven variabele verlagen. Deze implementatie is niet thread-safe. |
| CComSingleThreadModel::Increment | Hiermee wordt de waarde van de opgegeven variabele verhoogd. Deze implementatie is niet thread-safe. |
Opmerkingen
CComSingleThreadModel biedt methoden voor het verhogen en verlagen van de waarde van een variabele. In tegenstelling tot CComMultiThreadModel en CComMultiThreadModelNoCS zijn deze methoden niet thread-safe.
Normaal gesproken gebruikt CComSingleThreadModel u een van de twee typedef namen, CComObjectThreadModel of CComGlobalsThreadModel. De klasse waarnaar wordt typedef verwezen, is afhankelijk van het threadingmodel dat wordt gebruikt, zoals wordt weergegeven in de volgende tabel:
| typedef | Model voor één threading | Model voor appartementthreading | Gratis threadingmodel |
|---|---|---|---|
CComObjectThreadModel |
S | S | M |
CComGlobalsThreadModel |
S | M | M |
S= CComSingleThreadModel; M= CComMultiThreadModel
CComSingleThreadModel zelf definieert drie typedef namen.
ThreadModelNoCS verwijzingen CComSingleThreadModel.
AutoCriticalSection en CriticalSection referentieklasse CComFakeCriticalSection, die lege methoden biedt die zijn gekoppeld aan het verkrijgen en vrijgeven van het eigendom van een kritieke sectie.
Requirements
Header: atlbase.h
CComSingleThreadModel::AutoCriticalSection
Wanneer u CComSingleThreadModeldeze gebruikt, verwijst de typedef naam AutoCriticalSection naar klasse CComFakeCriticalSection.
typedef CComFakeCriticalSection AutoCriticalSection;
Opmerkingen
Omdat CComFakeCriticalSection het geen kritieke sectie biedt, doen de methoden niets.
CComMultiThreadModel en CComMultiThreadModelNoCS bevatten definities voor AutoCriticalSection. In de volgende tabel ziet u de relatie tussen de threadingmodelklasse en de kritieke sectieklasse waarnaar wordt verwezen:AutoCriticalSection
| Klasse gedefinieerd in | Klasse waarnaar wordt verwezen |
|---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Daarnaast AutoCriticalSectionkunt u de typedef naam CriticalSection gebruiken. U moet niet opgeven AutoCriticalSection in globale objecten of statische klasseleden als u de CRT-opstartcode wilt elimineren.
Example
Zie CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::CriticalSection
Wanneer u CComSingleThreadModeldeze gebruikt, verwijst de typedef naam CriticalSection naar klasse CComFakeCriticalSection.
typedef CComFakeCriticalSection CriticalSection;
Opmerkingen
Omdat CComFakeCriticalSection het geen kritieke sectie biedt, doen de methoden niets.
CComMultiThreadModel en CComMultiThreadModelNoCS bevatten definities voor CriticalSection. In de volgende tabel ziet u de relatie tussen de threadingmodelklasse en de kritieke sectieklasse waarnaar wordt verwezen:CriticalSection
| Klasse gedefinieerd in | Klasse waarnaar wordt verwezen |
|---|---|
CComSingleThreadModel |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
Daarnaast CriticalSectionkunt u de typedef naam AutoCriticalSection gebruiken. U moet niet opgeven AutoCriticalSection in globale objecten of statische klasseleden als u de CRT-opstartcode wilt elimineren.
Example
Zie CComMultiThreadModel::AutoCriticalSection.
CComSingleThreadModel::D ecrement
Met deze statische functie wordt de waarde van de variabele die door p wordt verwezen, verminderd.
static ULONG WINAPI Decrement(LPLONG p) throw();
Parameterwaarden
p
[in] Wijs de variabele aan die moet worden afgebroken.
Retourwaarde
Het resultaat van de afschaking.
CComSingleThreadModel::Increment
Met deze statische functie wordt de waarde van de variabele verhoogd naar p.
static ULONG WINAPI Increment(LPLONG p) throw();
Parameterwaarden
p
[in] Wijs de variabele aan die moet worden verhoogd.
Retourwaarde
Het resultaat van de verhoging.
CComsingleThreadModel::ThreadModelNoCS
Wanneer u deze gebruikt CComSingleThreadModel, verwijst de typedef naam ThreadModelNoCS gewoon naar CComSingleThreadModel.
typedef CComSingleThreadModel ThreadModelNoCS;
Opmerkingen
CComMultiThreadModel en CComMultiThreadModelNoCS bevatten definities voor ThreadModelNoCS. In de volgende tabel ziet u de relatie tussen de threadingmodelklasse en de klasse waarnaar wordt verwezen:ThreadModelNoCS
| Klasse gedefinieerd in | Klasse waarnaar wordt verwezen |
|---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Example
Zie CComMultiThreadModel::AutoCriticalSection.