Partager via


CNonStatelessWorker, classe

Reçoit les demandes d’un pool de threads et les transmet à un objet worker créé et détruit sur chaque requête.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

template <class Worker>
class CNonStatelessWorker

Paramètres

Collaborateur
Classe de thread de travail conforme au archétype worker adapté à la gestion des demandes mises en file d’attente sur CThreadPool.

Membres

Typedefs publics

Nom Description
CNonStatelessWorker ::RequestType Implémentation de WorkerArchetype ::RequestType.

Méthodes publiques

Nom Description
CNonStatelessWorker ::Execute Implémentation de WorkerArchetype ::Execute.
CNonStatelessWorker ::Initialize Implémentation de WorkerArchetype ::Initialize.
CNonStatelessWorker ::Terminate Implémentation de WorkerArchetype ::Terminate.

Notes

Cette classe est un thread de travail simple à utiliser avec CThreadPool. Cette classe ne fournit aucune capacité de gestion des requêtes de sa propre classe. Au lieu de cela, il instancie une instance de Worker par requête et délègue l’implémentation de ses méthodes à cette instance.

L’avantage de cette classe est qu’elle offre un moyen pratique de modifier le modèle d’état pour les classes de thread de travail existantes. CThreadPool crée un seul worker pour la durée de vie du thread. Par conséquent, si la classe worker contient l’état, elle la contiendra sur plusieurs requêtes. En encapsulant simplement cette classe dans le CNonStatelessWorker modèle avant de l’utiliser avec CThreadPool, la durée de vie du worker et l’état qu’il contient est limité à une seule requête.

Spécifications

En-tête : atlutil.h

CNonStatelessWorker ::Execute

Implémentation de WorkerArchetype ::Execute.

void Execute(
    Worker::RequestType request,
    void* pvWorkerParam,
    OVERLAPPED* pOverlapped);

Notes

Cette méthode crée une instance de la classe Worker sur la pile et appelle Initialize sur cet objet. Si l’initialisation réussit, cette méthode appelle également Execute et Terminate sur le même objet.

CNonStatelessWorker ::Initialize

Implémentation de WorkerArchetype ::Initialize.

BOOL Initialize(void* /* pvParam */) throw();

Valeur de retour

Retourne toujours TRUE.

Notes

Cette classe ne fait aucune initialisation dans Initialize.

CNonStatelessWorker ::RequestType

Implémentation de WorkerArchetype ::RequestType.

typedef Worker::RequestType RequestType;

Notes

Cette classe gère le même type d’élément de travail que la classe utilisée pour le paramètre de modèle Worker . Pour plus d’informations, consultez la vue d’ensemble de CNonStatelessWorker.

CNonStatelessWorker ::Terminate

Implémentation de WorkerArchetype ::Terminate.

void Terminate(void* /* pvParam */) throw();

Notes

Cette classe ne fait aucun nettoyage dans Terminate.

Voir aussi

CThreadPool, classe
Archétype de travail
Classes