CComAutoThreadModule类选件

自ATL 7.0,CComAutoThreadModule 已过时:有关详细信息 ATL模块选件类 参见。

重要说明重要事项

此选件类及其成员不能在Windows运行时执行的应用程序。

template<
class ThreadAllocator= CComSimpleThreadAllocator 
>
class CComAutoThreadModule :
public CComModule

参数

成员

1ty34ed4.collapse_all(zh-cn,VS.110).gif方法

CreateInstance

处于关联的单元选择线程然后创建对象。

GetDefaultThreads

(静态)动态计算的线程数量。具体取决于处理器的数目的模块。

Init

创建模块的线程。

锁定

增加锁计数在模块以及当前线程。

unlock

递减锁计数在模块以及当前线程。

1ty34ed4.collapse_all(zh-cn,VS.110).gif数据成员

数据成员

dwThreadID

包含当前线程的标识符。

m_Allocator

管理线程选择。

m_nThreads

在模块包含线程的数量。

m_pApartments

管理模块的单元。

备注

说明说明

此选件类已过时,将 CAtlAutoThreadModuleCAtlModule 派生类替换。下面的信息功能上与ATL早期版本的。

CComAutoThreadModuleCComModule 派生来实现EXE和Windows服务的一线程池的,单元模型COM服务器。CComAutoThreadModule 使用 CComApartment 管理每个线程的一个单元在模块。

用于在多个单元时,创建对象从 CComAutoThreadModule 则应从派生该模块。您的对象类定义还必须包括 DECLARE_CLASSFACTORY_AUTO_THREAD 宏指定 CComClassFactoryAutoThread 作为选件类工厂。

默认情况下,ATL COM AppWizard (Visual Studio .NET) ATL项目向导从 CComModule将派生自己的模块。若要使用 CComAutoThreadModule,请修改类定义。例如:

class CMyModule : 
public CComAutoThreadModule<CComSimpleThreadAllocator>
{
public:
   LONG Unlock()
   {
      LONG l = CComAutoThreadModule<CComSimpleThreadAllocator>::Unlock();
      if (l == 0)
         PostThreadMessage(dwThreadID, WM_QUIT, 0, 0);
      return l;
   }

   DWORD dwThreadID;
};

继承层次结构

_ATL_MODULE

CAtlModule

IAtlAutoThreadModule

CAtlModuleT

CAtlAutoThreadModuleT

CComModule

CComAutoThreadModule

要求

Header: atlbase.h

请参见

参考

ATL模块选件类

其他资源

ATL选件类概述