工作原型

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

实现

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

方法 说明
初始化 调用以初始化辅助对象,然后将请求传递给 执行
执行 调用以处理工作项。
Terminate 调用以在所有请求都传递到 执行之后对工作对象进行初始化。
Typedef 说明
RequestType 可由 worker 类处理的工作项类型的 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

WorkerArchetype:: Execute

调用以处理工作项。

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

parameters

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

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

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

WorkerArchetype:: Initialize

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

BOOL Initialize(void* pvParam) throw();

parameters

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

返回值

如果成功,则返回 TRUE,否则返回 FALSE。

WorkerArchetype:: RequestType

可由 worker 类处理的工作项类型的 typedef。

typedef MyRequestType RequestType;

备注

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

WorkerArchetype:: Terminate

调用以在所有请求都传递到 WorkerArchetype::Execute) 后对辅助对象进行初始化。

void Terminate(void* pvParam) throw();

parameters

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

另请参阅

概念
ATL COM 桌面组件