# If definito (_ATL_SINGLE_THREADED)
typedef CComSingleThreadModel CComGlobalsThreadModel;
# Elif definito (_ATL_APARTMENT_THREADED)
typedef CComMultiThreadModel CComGlobalsThreadModel;
# else
typedef CComMultiThreadModel CComGlobalsThreadModel;
# endif
A seconda del modello di threading utilizzato dall'applicazione, il nome di typedef CComGlobalsThreadModel fa riferimento a o CComSingleThreadModel o CComMultiThreadModel. Queste classi forniscono ulteriori typedef nomi per fare riferimento a una classe di sezione critica.
&Notanbsp;CComGlobalsThreadModel non fa riferimento a classe CComMultiThreadModelNoCS.
Utilizzando CComGlobalsThreadModel libera da specificando una particolare classe di modello di threading. Indipendentemente dal modello di threading utilizzato, si chiamerà i metodi appropriati.
Oltre a CComGlobalsThreadModel, ATL fornisce il nome di typedef CComObjectThreadModel. La classe a cui fa riferimento ogni typedef dipende il modello di threading utilizzato, come illustrato nella tabella seguente:
| Modello di threading | |||
| typedef | Singolo | Appartamento | Gratis |
| CcomObjectThreadModel | S | S | M |
| CcomGlobalsThreadModel | S | M | M |
S =CComSingleThreadModel; M =CComMultiThreadModel
All'interno di una classe del singolo oggetto, utilizzare CComObjectThreadModel . Utilizzare CComGlobalsThreadModel in un oggetto che è globalmente disponibile al vostro programma, o quando si desidera proteggere il modulo risorse tra thread multipli.
# include lt;atlbase.h>
Vedere a&nchenbsp;CComObjectRootEx