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

WorkerArchetype::Execute 的实现。

void Execute(
    Worker::RequestType request,
    void* pvWorkerParam,
    OVERLAPPED* pOverlapped);

备注

此方法在堆栈上创建辅助角色类的实例,并在该对象上调用 Initialize 如果初始化成功,此方法还会在同一对象上调用 ExecuteTerminate

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 中不执行任何清理。

另请参阅

CThreadPool 类
Worker Archetype