CComObjectThreadModel
O segmento apropriado chama métodos de modelo, independentemente do modelo de threading que está sendo usado.
#if defined( _ATL_SINGLE_THREADED )
typedef CComSingleThreadModel CComObjectThreadModel;
#elif defined( _ATL_APARTMENT_THREADED )
typedef CComSingleThreadModel CComObjectThreadModel;
#elif defined( _ATL_FREE_THREADED )
typedef CComMultiThreadModel CComObjectThreadModel;
#else
#pragma message ("No global threading model defined")
#endif
Comentários
Dependendo do modelo de threading usado pelo seu aplicativo, a typedef nome CComObjectThreadModel faz referência a um CComSingleThreadModel or CComMultiThreadModel.Essas classes fornecem adicionais typedef nomes para fazer referência a uma classe de seção crítica.
Observação: |
---|
CComObjectThreadModel não faz referência a classe CComMultiThreadModelNoCS. |
Usando CComObjectThreadModel libera você de especificar uma determinada classe de modelo de threading. Independentemente do modelo segmento que está sendo usado, os métodos adequados serão chamados.
Em adição a CComObjectThreadModelATL fornece o typedef nome CComGlobalsThreadModel.A classe referenciada por cada typedef depende do modelo de threading usado, conforme mostrado na tabela a seguir:
TypeDef |
Threading simples |
Apartment threading |
Segmentação disponível |
---|---|---|---|
CComObjectThreadModel |
S |
S |
M |
CComGlobalsThreadModel |
S |
M |
M |
S=CComSingleThreadModelS =CComMultiThreadModel
Use CComObjectThreadModel dentro de uma classe de objeto único. Use CComGlobalsThreadModel em um objeto que está globalmente disponível para o seu programa ou quando você deseja proteger recursos do módulo em vários segmentos.
Requisitos
Cabeçalho: atlbase.h