Freigeben über


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 CThreadPoolverwenden, 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 sauber up in Terminate.

Siehe auch

CThreadPool-Klasse
Worker Archetype
Klassen