CComObjectThreadModel

调用适当的线程模型方法,无论使用哪种线程模型。

#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

备注

根据应用程序使用的线程模型,typedef 名称 CComObjectThreadModel 引用 CComSingleThreadModelCComMultiThreadModel。这些选件类提供附加 typedef 名称引用临界区选件类。

说明说明

CComObjectThreadModel 不引用选件类 CComMultiThreadModelNoCS

使用 CComObjectThreadModel 从指定特定线程模型选件类抽象化。无论使用哪种线程模型,相应的方法将调用。

除了 CComObjectThreadModel外,ATL提供 typedef 名称 CComGlobalsThreadModel。每 typedef 引用的选件类依赖于线程模型使用,如下表所示:

typedef

单个线程

单元线程处理

自由线程处理

CComObjectThreadModel

S

S

M

CComGlobalsThreadModel

S

M

M

S=CComSingleThreadModel;M=CComMultiThreadModel

使用在单个对象类中的 CComObjectThreadModel。使用 CComGlobalsThreadModel 在为或全局供程序的对象,或者,如果要保护在多个线程中时的模块资源。

要求

Header: atlbase.h

请参见

参考

CComObjectRootEx选件类

其他资源

ATL选件类概述

ATL Typedef