CNonStatelessWorker-Klasse
Empfängt Anforderungen von einem Threadpool und übergibt sie an ein Workerobjekt, das für jede Anforderung erstellt und zerstört wird.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
template <class Worker>
class CNonStatelessWorker
Parameter
Arbeitskraft
Eine Workerthreadklasse, die dem Worker-Archetyp entspricht, der für die Behandlung von Anforderungen geeignet ist, die in CThreadPool in die Warteschlange gestellt werden.
Member
Öffentliche Typedefs
Name | Beschreibung |
---|---|
CNonStatelessWorker::RequestType | Implementierung von WorkerArchetype::RequestType. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CNonStatelessWorker::Execute | Implementierung von WorkerArchetype::Execute. |
CNonStatelessWorker::Initialize | Implementierung von WorkerArchetype::Initialize. |
CNonStatelessWorker::Terminate | Implementierung von WorkerArchetype::Terminate. |
Hinweise
Diese Klasse ist ein einfacher Arbeitsthread für die Verwendung mit CThreadPool. Diese Klasse bietet keine eigenen Anforderungsverarbeitungsfunktionen. Stattdessen instanziiert er eine Instanz von Worker pro Anforderung und delegiert die Implementierung seiner Methoden an diese Instanz.
Der Vorteil dieser Klasse besteht darin, dass sie eine bequeme Möglichkeit zum Ändern des Statusmodells für vorhandene Workerthreadklassen bietet. CThreadPool
erstellt einen einzelnen Worker für die Lebensdauer des Threads. Wenn die Workerklasse den Zustand enthält, wird sie also über mehrere Anforderungen hinweg aufbewahrt. Indem Sie diese Klasse einfach in die CNonStatelessWorker
Vorlage umschließen, bevor Sie sie mit CThreadPool
verwenden, ist die Lebensdauer des Workers und des Zustands, den er enthält, auf eine einzelne Anforderung beschränkt.
Anforderungen
Header: atlutil.h
CNonStatelessWorker::Execute
Implementierung von WorkerArchetype::Execute.
void Execute(
Worker::RequestType request,
void* pvWorkerParam,
OVERLAPPED* pOverlapped);
Hinweise
Diese Methode erstellt eine Instanz der Worker-Klasse im Stapel und ruft Initialize für dieses Objekt auf. Wenn die Initialisierung erfolgreich ist, ruft diese Methode auch Execute und Terminate für dasselbe Objekt auf.
CNonStatelessWorker::Initialize
Implementierung von WorkerArchetype::Initialize.
BOOL Initialize(void* /* pvParam */) throw();
Rückgabewert
Gibt immer TRUE zurück.
Hinweise
Diese Klasse führt keine Initialisierung in Initialize
.
CNonStatelessWorker::RequestType
Implementierung von WorkerArchetype::RequestType.
typedef Worker::RequestType RequestType;
Hinweise
Diese Klasse behandelt den gleichen Arbeitsaufgabentyp wie die Klasse, die für den Vorlagenparameter "Worker " verwendet wird. Details finden Sie unter CNonStatelessWorker Overview .
CNonStatelessWorker::Terminate
Implementierung von WorkerArchetype::Terminate.
void Terminate(void* /* pvParam */) throw();
Hinweise
Diese Klasse führt keine Bereinigung in Terminate
.