CNonStatelessWorker (clase)
Recibe solicitudes de un grupo de subprocesos y las pasa a un objeto de trabajo que se crea y destruye en cada solicitud.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
template <class Worker>
class CNonStatelessWorker
Parámetros
Trabajador
Una clase de subproceso de trabajo que se ajusta al arquetipo de trabajo adecuado para controlar las solicitudes en cola en CThreadPool.
Miembros
Definiciones de tipos públicas
Nombre | Descripción |
---|---|
CNonStatelessWorker::RequestType | Implementación de WorkerArchetype::RequestType. |
Métodos públicos
Nombre | Descripción |
---|---|
CNonStatelessWorker::Execute | Implementación de WorkerArchetype::Execute. |
CNonStatelessWorker::Initialize | Implementación de WorkerArchetype::Initialize. |
CNonStatelessWorker::Terminate | Implementación de WorkerArchetype::Terminate. |
Comentarios
Esta clase es un simple subproceso de trabajo que se utiliza con CThreadPool. Esta clase no proporciona ninguna funcionalidad de control de solicitudes propia. En su lugar, crea una instancia de una instancia de Worker por solicitud y delega la implementación de sus métodos en esa instancia.
La ventaja de esta clase es que proporciona una manera cómoda de cambiar el modelo de estado para las clases de subproceso de trabajo existentes. CThreadPool
creará un único trabajo durante la vigencia del subproceso, por lo que si la clase de trabajo contiene el estado, lo contendrá en varias solicitudes. Simplemente ajustando esa clase en la plantilla CNonStatelessWorker
antes de usarla con CThreadPool
, la duración del trabajo y el estado que contiene se limita a una sola solicitud.
Requisitos
Header: atlutil.h
CNonStatelessWorker::Execute
Implementación de WorkerArchetype::Execute.
void Execute(
Worker::RequestType request,
void* pvWorkerParam,
OVERLAPPED* pOverlapped);
Comentarios
Este método crea una instancia de la clase Worker en la pila y llama a Initialize en ese objeto. Si la inicialización se realiza correctamente, este método también llama a Execute y Terminate en el mismo objeto.
CNonStatelessWorker::Initialize
Implementación de WorkerArchetype::Initialize.
BOOL Initialize(void* /* pvParam */) throw();
Valor devuelto
Siempre devuelve TRUE.
Comentarios
Esta clase no realiza ninguna inicialización en Initialize
.
CNonStatelessWorker::RequestType
Implementación de WorkerArchetype::RequestType.
typedef Worker::RequestType RequestType;
Comentarios
Esta clase controla el mismo tipo de elemento de trabajo que la clase usada para el parámetro de plantilla Worker. Consulte Introducción a CNonStatelessWorker para obtener detalles.
CNonStatelessWorker::Terminate
Implementación de WorkerArchetype::Terminate.
void Terminate(void* /* pvParam */) throw();
Comentarios
Esta clase no realiza ninguna limpieza en Terminate
.