Share via


CComMultiThreadModelNoCS-klasse

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.

Zie ook

Overzicht van klassen