Worker Archetype

符合辅助角色原型的类提供用于处理线程池上排队的工作项的代码。

实现

若要实现符合此原型的类,该类必须提供以下功能:

方法 说明
初始化 调用以在将任何请求传递到 Execute 之前初始化辅助角色对象。
执行 调用以处理工作项。
Terminate 调用以在将所有请求传递到 Execute 之后取消初始化辅助角色对象。
Typedef 说明
RequestType 工作项类型的 typedef 可由辅助角色类处理。

典型的辅助角色类如下所示:

class CMyWorker
{
public:
   typedef MyRequestType RequestType;

   BOOL Initialize(void* pvWorkerParam);

   void Execute(MyRequestType request, void* pvWorkerParam, OVERLAPPED* pOverlapped);

   void Terminate(void* pvWorkerParam);
};

现有实现

这些类符合此原型:

说明
CNonStatelessWorker 接收来自线程池的请求,并将其传递给为每个请求创建和销毁的工作线程对象。

用途

这些模板参数要求类符合此原型:

参数名称 使用者
工作人员 CThreadPool
工作人员 CNonStatelessWorker

要求

标头:atlutil.h

WorkerArchetype::Execute

调用以处理工作项。

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

参数

request
要处理的工作项。 工作项的类型与 RequestType 相同。

pvWorkerParam
辅助角色类理解的自定义参数。 也传递给 WorkerArchetype::InitializeTerminate

pOverlapped
指向重叠结构的指针,该结构用于创建工作项排队的队列。

WorkerArchetype::Initialize

调用以在将任何请求传递到 WorkerArchetype::Execute 之前初始化辅助角色对象。

BOOL Initialize(void* pvParam) throw();

参数

pvParam
辅助角色类理解的自定义参数。 也传递给 WorkerArchetype::TerminateWorkerArchetype::Execute

返回值

如果成功,则返回 TRUE ;如果失败,则返回 FALSE。

WorkerArchetype::RequestType

工作项类型的 typedef 可由辅助角色类处理。

typedef MyRequestType RequestType;

备注

此类型必须用作第一个参数 WorkerArchetype::Execute,并且必须能够与 ULONG_PTR 相互强制转换。

WorkerArchetype::Terminate

调用以在将所有请求传递到 WorkerArchetype::Execute 之后取消初始化辅助角色对象)。

void Terminate(void* pvParam) throw();

参数

pvParam
辅助角色类理解的自定义参数。 也传递给 WorkerArchetype::InitializeWorkerArchetype::Execute

另请参阅

概念
ATL COM 桌面组件