CNonStatelessWorker – třída
Přijímá požadavky z fondu vláken a předává je do pracovního objektu, který je vytvořen a zničen na každém požadavku.
Důležité
Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.
Syntaxe
template <class Worker>
class CNonStatelessWorker
Parametry
Pracovní podproces
Třída pracovních vláken odpovídající archetypu pracovního procesu vhodná pro zpracování požadavků zařazených do fronty V CThreadPool.
Členové
Veřejné definice typedef
Název | Popis |
---|---|
CNonStatelessWorker::RequestType | Implementace WorkerArchetype::RequestType. |
Veřejné metody
Poznámky
Tato třída je jednoduché pracovní vlákno pro použití s CThreadPool. Tato třída neposkytuje vlastní možnosti zpracování požadavků. Místo toho vytvoří instanci jedné instance pracovního procesu na požadavek a deleguje implementaci jejích metod na danou instanci.
Výhodou této třídy je, že poskytuje pohodlný způsob, jak změnit stavový model pro existující třídy pracovních vláken. CThreadPool
vytvoří jeden pracovní proces po celou dobu životnosti vlákna, takže pokud třída pracovního procesu obsahuje stav, bude ho obsahovat napříč více požadavky. Když tuto třídu jednoduše zabalíte do CNonStatelessWorker
šablony předtím, než ji použijete, CThreadPool
doba života pracovního procesu a stav, který obsahuje, je omezen na jeden požadavek.
Požadavky
Hlavička: atlutil.h
CNonStatelessWorker::Execute
Implementace WorkerArchetype::Execute.
void Execute(
Worker::RequestType request,
void* pvWorkerParam,
OVERLAPPED* pOverlapped);
Poznámky
Tato metoda vytvoří instanci Třídy Worker v zásobníku a volá Initialize na tomto objektu. Pokud je inicializace úspěšná, tato metoda také volá Execute a Terminate ve stejném objektu.
CNonStatelessWorker::Initialize
Implementace WorkerArchetype::Initialize.
BOOL Initialize(void* /* pvParam */) throw();
Návratová hodnota
Vždy vrátí hodnotu PRAVDA.
Poznámky
Tato třída neprovádí inicializaci v Initialize
.
CNonStatelessWorker::RequestType
Implementace WorkerArchetype::RequestType.
typedef Worker::RequestType RequestType;
Poznámky
Tato třída zpracovává stejný typ pracovní položky jako třída použitá pro parametr šablony pracovního procesu . Podrobnosti najdete v přehledu CNonStatelessWorker .
CNonStatelessWorker::Terminate
Implementace WorkerArchetype::Terminate.
void Terminate(void* /* pvParam */) throw();
Poznámky
Tato třída neprovádí žádné vyčištění v Terminate
.