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。 如果初始化成功,這個方法也會在相同的物件上呼叫 Execute 和 Terminate 。
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
進行任何清除。