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
.