Condividi tramite


Classe CComSingleThreadModel

Questa classe fornisce metodi per incrementare e decrementare il valore di una variabile.

Sintassi

class CComSingleThreadModel

Membri

Typedef pubblici

Nome Descrizione
CComSingleThreadModel::AutoCriticalSection Classe References CComFakeCriticalSection.
CComSingleThreadModel::CriticalSection Classe References CComFakeCriticalSection.
CComSingleThreadModel::ThreadModelNoCS Riferimenti CComSingleThreadModel.

Metodi pubblici

Nome Descrizione
CComSingleThreadModel::D ecrement Decrementa il valore della variabile specificata. Questa implementazione non è thread-safe.
CComSingleThreadModel::Increment Incrementa il valore della variabile specificata. Questa implementazione non è thread-safe.

Osservazioni:

CComSingleThreadModel fornisce metodi per incrementare e decrementare il valore di una variabile. A differenza di CComMultiThreadModel e CComMultiThreadModelNoCS, questi metodi non sono thread-safe.

In genere, si usa CComSingleThreadModel uno dei due typedef nomi CComObjectThreadModel o CComGlobalsThreadModel. La classe a cui fa riferimento ognuno typedef dipende dal modello di threading usato, come illustrato nella tabella seguente:

typedef Modello a threading singolo Modello di threading apartment Modello di threading libero
CComObjectThreadModel S S M
CComGlobalsThreadModel S M M

S= CComSingleThreadModel; M= CComMultiThreadModel

CComSingleThreadModel definisce tre typedef nomi. ThreadModelNoCS fa CComSingleThreadModelriferimento a . AutoCriticalSection e CriticalSection classe di riferimento CComFakeCriticalSection, che fornisce metodi vuoti associati a ottenere e rilasciare la proprietà di una sezione critica.

Requisiti

Intestazione: atlbase.h

CComSingleThreadModel::AutoCriticalSection

Quando si usa CComSingleThreadModel, il typedef nome AutoCriticalSection fa riferimento alla classe CComFakeCriticalSection.

typedef CComFakeCriticalSection AutoCriticalSection;

Osservazioni:

Poiché CComFakeCriticalSection non fornisce una sezione critica, i relativi metodi non eseguono alcuna operazione.

CComMultiThreadModel e CComMultiThreadModelNoCS contengono definizioni per AutoCriticalSection. La tabella seguente illustra la relazione tra la classe del modello di threading e la classe di sezione critica a cui fa AutoCriticalSectionriferimento :

Classe definita in Classe a cui si fa riferimento
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComAutoCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

Oltre a AutoCriticalSection, è possibile usare il typedef nome CriticalSection. Se si desidera eliminare il codice di avvio CRT, non è consigliabile specificare AutoCriticalSection in oggetti globali o membri di classi statiche.

Esempio

Vedere CComMultiThreadModel::AutoCriticalSection.

CComSingleThreadModel::CriticalSection

Quando si usa CComSingleThreadModel, il typedef nome CriticalSection fa riferimento alla classe CComFakeCriticalSection.

typedef CComFakeCriticalSection CriticalSection;

Osservazioni:

Poiché CComFakeCriticalSection non fornisce una sezione critica, i relativi metodi non eseguono alcuna operazione.

CComMultiThreadModel e CComMultiThreadModelNoCS contengono definizioni per CriticalSection. La tabella seguente illustra la relazione tra la classe del modello di threading e la classe di sezione critica a cui fa CriticalSectionriferimento :

Classe definita in Classe a cui si fa riferimento
CComSingleThreadModel CComFakeCriticalSection
CComMultiThreadModel CComCriticalSection
CComMultiThreadModelNoCS CComFakeCriticalSection

Oltre a CriticalSection, è possibile usare il typedef nome AutoCriticalSection. Se si desidera eliminare il codice di avvio CRT, non è consigliabile specificare AutoCriticalSection in oggetti globali o membri di classi statiche.

Esempio

Vedere CComMultiThreadModel::AutoCriticalSection.

CComSingleThreadModel::D ecrement

Questa funzione statica decrementa il valore della variabile a cui punta p.

static ULONG WINAPI Decrement(LPLONG p) throw();

Parametri

p
[in] Puntatore alla variabile da decrementare.

Valore restituito

Risultato del decremento.

CComSingleThreadModel::Increment

Questa funzione statica incrementa il valore della variabile a cui punta p.

static ULONG WINAPI Increment(LPLONG p) throw();

Parametri

p
[in] Puntatore alla variabile da incrementare.

Valore restituito

Risultato dell'incremento.

CComSingleThreadModel::ThreadModelNoCS

Quando si usa CComSingleThreadModel, il typedef nome ThreadModelNoCS fa semplicemente riferimento a CComSingleThreadModel.

typedef CComSingleThreadModel ThreadModelNoCS;

Osservazioni:

CComMultiThreadModel e CComMultiThreadModelNoCS contengono definizioni per ThreadModelNoCS. La tabella seguente illustra la relazione tra la classe del modello di threading e la classe a cui fa ThreadModelNoCSriferimento :

Classe definita in Classe a cui si fa riferimento
CComSingleThreadModel CComSingleThreadModel
CComMultiThreadModel CComMultiThreadModelNoCS
CComMultiThreadModelNoCS CComMultiThreadModelNoCS

Esempio

Vedere CComMultiThreadModel::AutoCriticalSection.

Vedi anche

Cenni preliminari sulla classe