共用方式為


CNonStatelessWorker 類別

從線程集區接收要求,並將其傳遞至在每個要求上建立和終結的背景工作物件。

重要

這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。

語法

template <class Worker>
class CNonStatelessWorker

參數

工作人員
符合背景工作角色原型的背景工作線程類別,適用於處理在 CThreadPool排入佇列的要求。

成員

公用 Typedefs

名稱 描述
CNonStatelessWorker::RequestType WorkerArchetype::RequestType 的實作

公用方法

名稱 描述
CNonStatelessWorker::Execute WorkerArchetype::Execute 的實作
CNonStatelessWorker::Initialize WorkerArchetype::Initialize 的實作
CNonStatelessWorker::Terminate WorkerArchetype::Terminate 的實作

備註

這個類別是簡單的背景工作線程,可與 CThreadPool 搭配使用。 此類別不提供自己的任何要求處理功能。 相反地,它會為每個要求具現化一個 Worker 實例,並將其方法的實作委派給該實例。

這個類別的優點是,它提供一個方便的方式來變更現有背景工作線程類別的狀態模型。 CThreadPool 會針對線程的存留期建立單一背景工作角色,因此,如果背景工作類別保留狀態,則會跨多個要求加以保存。 只要在範本中 CNonStatelessWorker 包裝該類別,再搭配 CThreadPool使用,背景工作角色的存留期和其保留的狀態會限制為單一要求。

需求

標頭: atlutil.h

CNonStatelessWorker::Execute

WorkerArchetype::Execute 的實作

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

備註

這個方法會在堆棧上建立 Worker 類別的實例,並在該物件上呼叫 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 類別
背景工作原型
類別