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
進行任何清除。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應