# If definito (_ATL_SINGLE_THREADED)
typedef CComSingleThreadModel CComObjectThreadModel;
# Elif definito (_ATL_APARTMENT_THREADED)
typedef CComSingleThreadModel CComObjectThreadModel;
# else
typedef CComMultiThreadModel CComObjectThreadModel;
# endif
A seconda del modello di threading utilizzato dall'applicazione, il nome di typedef CComObjectThreadModel fa riferimento a o CComSingleThreadModel o CComMultiThreadModel. Queste classi forniscono ulteriori typedef nomi per fare riferimento a una classe di sezione critica.
&Notanbsp;CComObjectThreadModel non fa riferimento a classe CComMultiThreadModelNoCS.
Utilizzando CComObjectThreadModel libera da specificando una particolare classe di modello di threading. Indipendentemente dal modello di threading utilizzato, si chiamerà i metodi appropriati.
Oltre a CComObjectThreadModel, ATL fornisce il nome di typedef CComGlobalsThreadModel. 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 può essere disponibile globalmente al vostro programma, o quando si desidera proteggere il modulo risorse tra thread multipli.
# include lt;atlbase.h>
Vedere a&nchenbsp;CComObjectRootEx