CNonStatelessWorker 类
接收来自线程池的请求,并将其传递给在每个请求中创建和销毁的工作线程对象。
重要
无法在 Windows 运行时中执行的应用程序中使用此类及其成员。
语法
template <class Worker>
class CNonStatelessWorker
参数
工作人员
符合辅助角色原型的工作线程类,适合处理在 CThreadPool 上排队的请求。
成员
公共 Typedef
名称 | 描述 |
---|---|
CNonStatelessWorker::RequestType | WorkerArchetype::RequestType 的实现。 |
公共方法
名称 | 描述 |
---|---|
CNonStatelessWorker::Execute | WorkerArchetype::Execute 的实现。 |
CNonStatelessWorker::Initialize | WorkerArchetype::Initialize 的实现。 |
CNonStatelessWorker::Terminate | WorkerArchetype::Terminate 的实现。 |
备注
此类是用于 CThreadPool 的简单工作线程。 此类不提供其自身的任何请求处理功能。 相反,它会为每个请求实例化一个辅助角色实例,并将其方法的实现委托给该实例。
此类的优点是,它提供了一种简便方法,可以更改现有工作线程类的状态模型。 CThreadPool
将为线程的生存期创建单个辅助角色,因此,如果辅助角色类保留状态,它将在多个请求中保留此状态。 只需将该类包装在 CNonStatelessWorker
模板中,再将其与 CThreadPool
一起使用,辅助角色的生存期及其保留状态仅限于单个请求。
要求
标头:atlutil.h
CNonStatelessWorker::Execute
void Execute(
Worker::RequestType request,
void* pvWorkerParam,
OVERLAPPED* pOverlapped);
备注
此方法在堆栈上创建辅助角色类的实例,并在该对象上调用 Initialize。 如果初始化成功,此方法还会在同一对象上调用 Execute 和 Terminate。
CNonStatelessWorker::Initialize
WorkerArchetype::Initialize 的实现。
BOOL Initialize(void* /* pvParam */) throw();
返回值
始终返回 TRUE。
备注
此类在 Initialize
中不执行任何初始化。
CNonStatelessWorker::RequestType
WorkerArchetype::RequestType 的实现。
typedef Worker::RequestType RequestType;
备注
此类处理的工作项的类型与用于辅助角色模板参数的类型相同。 有关详细信息,请参阅 CnonStatelessWorker 概述。
CNonStatelessWorker::Terminate
WorkerArchetype::Terminate 的实现。
void Terminate(void* /* pvParam */) throw();
注解
此类在 Terminate
中不执行任何清理。