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.
CComMultiThreadModelNoCS biedt thread-veilige methoden voor het verhogen en verlagen van de waarde van een variabele, zonder kritieke sectievergrendeling of ontgrendelingsfunctionaliteit.
Syntaxis
class CComMultiThreadModelNoCS
Leden
Openbare typedefs
| Naam | Description |
|---|---|
| CComMultiThreadModelNoCS::AutoCriticalSection | Verwijst naar klasse CComFakeCriticalSection. |
| CComMultiThreadModelNoCS::CriticalSection | Verwijzingsklasse CComFakeCriticalSection. |
| CComMultiThreadModelNoCS::ThreadModelNoCS | Verwijzingsklasse CComMultiThreadModelNoCS. |
Openbare methoden
| Naam | Description |
|---|---|
| CComMultiThreadModelNoCS::D ecrement | (Statisch) De waarde van de opgegeven variabele op een threadveilige manier verlagen. |
| CComMultiThreadModelNoCS::Increment | (Statisch) Hiermee wordt de waarde van de opgegeven variabele op een threadveilige manier verhoogd. |
Opmerkingen
CComMultiThreadModelNoCS is vergelijkbaar met CComMultiThreadModel omdat het thread-veilige methoden biedt voor het verhogen en verlagen van een variabele. Wanneer u echter naar een kritieke sectieklasse verwijst via CComMultiThreadModelNoCS, doen methoden zoals Lock en Unlock doen ze niets.
Normaal gesproken gebruikt CComMultiThreadModelNoCS u de ThreadModelNoCStypedef naam. Dit typedef is gedefinieerd in CComMultiThreadModelNoCS, CComMultiThreadModelen CComSingleThreadModel.
Opmerking
De globale typedef namen CComObjectThreadModel en CComGlobalsThreadModel verwijzen niet naar CComMultiThreadModelNoCS.
Naast ThreadModelNoCS, CComMultiThreadModelNoCS definieert AutoCriticalSection en CriticalSection. Deze laatste twee typedef namen verwijzen naar CComFakeCriticalSection, dat lege methoden biedt die zijn gekoppeld aan het verkrijgen en vrijgeven van een kritieke sectie.
Requirements
Header: atlbase.h
CComMultiThreadModelNoCS::AutoCriticalSection
Wanneer u CComMultiThreadModelNoCSdeze 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 CComSingleThreadModel bevatten ook 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 |
|---|---|
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComSingleThreadModel |
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.
CComMultiThreadModelNoCS::CriticalSection
Wanneer u CComMultiThreadModelNoCSdeze 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 CComSingleThreadModel bevatten ook 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 |
|---|---|
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComSingleThreadModel |
CComFakeCriticalSection |
Daarnaast CriticalSectionkunt u de typedef naam AutoCriticalSectiongebruiken. U moet niet opgeven AutoCriticalSection in globale objecten of statische klasseleden als u de CRT-opstartcode wilt elimineren.
Example
Zie CComMultiThreadModel::AutoCriticalSection.
CComMultiThreadModelNoCS::D ecrement
Met deze statische functie wordt de Win32-functie InterlockedDecrement aangeroepen, waardoor de waarde van de variabele die door p wordt verwezen, wordt verminderd.
static ULONG WINAPI Decrement(LPLONG p) throw();
Parameterwaarden
p
[in] Wijs de variabele aan die moet worden afgebroken.
Retourwaarde
Als het resultaat van de afschaking 0 is, retourneert u Decrement 0. Als het resultaat van de degradatie niet nul is, is de retourwaarde ook niet-nul, maar is deze mogelijk niet gelijk aan het resultaat van de afzetting.
Opmerkingen
InterlockedDecrement voorkomt dat meer dan één thread tegelijkertijd deze variabele gebruikt.
CComMultiThreadModelNoCS::Increment
Met deze statische functie wordt de Win32-functie InterlockedIncrement aangeroepen, waarmee de waarde van de variabele die door p wordt verwezen, wordt verhoogd.
static ULONG WINAPI Increment(LPLONG p) throw();
Parameterwaarden
p
[in] Wijs de variabele aan die moet worden verhoogd.
Retourwaarde
Als het resultaat van de verhoging 0 is, retourneert Increment 0. Als het resultaat van de verhoging niet-nul is, is de retourwaarde ook niet-nul, maar is deze mogelijk niet gelijk aan het resultaat van de verhoging.
Opmerkingen
InterlockedIncrement voorkomt dat meer dan één thread tegelijkertijd deze variabele gebruikt.
CComMultiThreadModelNoCS::ThreadModelNoCS
Wanneer u deze gebruikt CComMultiThreadModelNoCS, verwijst de typedef naam ThreadModelNoCS gewoon naar CComMultiThreadModelNoCS.
typedef CComMultiThreadModelNoCS ThreadModelNoCS;
Opmerkingen
CComMultiThreadModel en CComSingleThreadModel bevatten ook 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 |
|---|---|
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComSingleThreadModel |
CComSingleThreadModel |
Houd er rekening mee dat de definitie van ThreadModelNoCS in de definitie CComMultiThreadModelNoCS symmetrie biedt en CComMultiThreadModelCComSingleThreadModel. Stel dat de voorbeeldcode in CComMultiThreadModel::AutoCriticalSection de volgende code het volgende typedefheeft gedeclareerd:
typedef typename ThreadModel::ThreadModelNoCS _ThreadModel;
Ongeacht de klasse die is opgegeven voor ThreadModel (zoals CComMultiThreadModelNoCS), _ThreadModel wordt dienovereenkomstig omgezet.
Example
Zie CComMultiThreadModel::AutoCriticalSection.