背景工作原型
符合背景工作 原型的 類別會提供程式碼來處理線上程集區上排入佇列的工作專案。
實作
若要實作符合此原型的類別,類別必須提供下列功能:
方法 | 描述 |
---|---|
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::Initialize
和 Terminate
。
pOverlapped
重迭 結構的指標 ,用來建立工作專案已排入佇列的佇列。
WorkerArchetype::Initialize
呼叫 以在傳遞至 之前 WorkerArchetype::Execute
初始化背景工作物件。
BOOL Initialize(void* pvParam) throw();
參數
pvParam
背景工作類別所瞭解的自訂參數。 也傳遞至 WorkerArchetype::Terminate
和 WorkerArchetype::Execute
。
傳回值
成功時傳回 TRUE,失敗時傳回 FALSE。
WorkerArchetype::RequestType
背景工作類別可處理之工作專案類型的 typedef。
typedef MyRequestType RequestType;
備註
此類型必須做為 的第 WorkerArchetype::Execute
一個參數,而且必須能夠轉換成ULONG_PTR。
WorkerArchetype::Terminate
呼叫 以在所有要求都傳遞至 WorkerArchetype::Execute
之後,將背景工作物件取消初始化。
void Terminate(void* pvParam) throw();
參數
pvParam
背景工作類別所瞭解的自訂參數。 也傳遞至 WorkerArchetype::Initialize
和 WorkerArchetype::Execute
。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應