CThreadPool选件类

此选件类提供的辅助线程池处理工作项队列。

template <
   class Worker,
   class ThreadTraits = DefaultThreadTraits
>
class CThreadPool :
   public IThreadPoolConfig

参数

  • 辅助
    与提供代码的 辅助原型 的选件类用于在线程池队列的处理工作项。

  • ThreadTraits
    提供功能的选件类创建线程在池。

成员

9tz6fz1e.collapse_all(zh-cn,VS.110).gif公共构造函数

名称

描述

CThreadPool::CThreadPool

线程池的构造函数。

CThreadPool::~CThreadPool

线程池的析构函数。

9tz6fz1e.collapse_all(zh-cn,VS.110).gif公共方法

名称

描述

CThreadPool::AddRef

IUnknown::AddRef 的实现。

CThreadPool::GetNumThreads

调用此方法获取线程数。该池的。

CThreadPool::GetQueueHandle

调用此方法获取用于IO的完成端口的处理排队工作项。

CThreadPool::GetSize

调用此方法获取线程数。该池的。

CThreadPool::GetTimeout

在毫秒调用此方法以获得最大时间线程池将等待线程关闭。

CThreadPool::Initialize

调用此方法来初始化线程池。

CThreadPool::QueryInterface

IUnknown::QueryInterface的实现。

CThreadPool::QueueRequest

调用此方法使在该池的线程要处理的工作项。

CThreadPool::Release

IUnknown::Release 的实现。

CThreadPool::SetSize

调用此方法设置线程数。该池的。

CThreadPool::SetTimeout

在毫秒调用此方法设置最长时间线程池将等待线程关闭。

CThreadPool::Shutdown

调用此方法关闭线程池。

备注

在池中的线程创建和销毁该池时初始化,调整大小或关闭。 选件类 辅助 实例在堆栈中创建每个辅助线程在池。 每个实例为线程的生存期将中。

在线程的创建之后,Worker::Initialize 要对对象与该线程。 在线程的损坏之前,Worker::Terminate 将调用。 两个方法必须接受 void* 参数。 此参数的值传递给线程池 CThreadPool::Initialize的 pvWorkerParam 参数。

当在队列中的工作项,以及辅助线程可用的工作,辅助线程将拉项队列并调用 辅助 对象的 Execute 方法该线程上。 三个项目并传递给方法:从队列中的项目,对于 pvWorkerParam 传递给Worker::Initialize 和Worker::Terminate,并且,对于 重叠 结构的指针为IO完成端口队列改用。

辅助 选件类声明在线程池要排队通过提供typedef项类型,Worker::RequestType。 此类型必须能够转换来回 ULONG_PTR

辅助 选件类的一个示例是 CNonStatelessWorker选件类

继承层次结构

IUnknown

IThreadPoolConfig

CThreadPool

要求

Header: atlutil.h

请参见

参考

IThreadPoolConfig接口

DefaultThreadTraits

其他资源

ATL 类