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 CComSingleThreadModel
riferimento 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 AutoCriticalSection
riferimento :
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 CriticalSection
riferimento :
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 ThreadModelNoCS
riferimento :
Classe definita in | Classe a cui si fa riferimento |
---|---|
CComSingleThreadModel |
CComSingleThreadModel |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
Esempio
Vedere CComMultiThreadModel::AutoCriticalSection.