共用方式為


背景工作原型

符合背景工作 原型的 類別會提供程式碼來處理線上程集區上排入佇列的工作專案。

實作

若要實作符合此原型的類別,類別必須提供下列功能:

方法 描述
Initialize 呼叫 以在將任何要求傳遞至 Execute 之前初始化背景工作物件。
執行 呼叫 以處理工作專案。
終止 呼叫 以在所有要求都傳遞至 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 桌面元件