Condividi tramite


Classe CNonStatelessWorker

Riceve le richieste da un pool di thread e le passa a un oggetto di lavoro creato e eliminato definitivamente in ogni richiesta.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

template <class Worker>
class CNonStatelessWorker

Parametri

Lavoratore
Classe thread di lavoro conforme all'archetipo di lavoro adatto per la gestione delle richieste accodate in CThreadPool.

Membri

Typedef pubblici

Nome Descrizione
CNonStatelessWorker::RequestType Implementazione di WorkerArchetype::RequestType.

Metodi pubblici

Nome Descrizione
CNonStatelessWorker::Execute Implementazione di WorkerArchetype::Execute.
CNonStatelessWorker::Initialize Implementazione di WorkerArchetype::Initialize.
CNonStatelessWorker::Terminate Implementazione di WorkerArchetype::Terminate.

Osservazioni:

Questa classe è un semplice thread di lavoro da usare con CThreadPool. Questa classe non fornisce funzionalità di gestione delle richieste proprie. Crea invece un'istanza di Worker per richiesta e delega l'implementazione dei relativi metodi a tale istanza.

Il vantaggio di questa classe è che offre un modo pratico per modificare il modello di stato per le classi di thread di lavoro esistenti. CThreadPool creerà un singolo ruolo di lavoro per la durata del thread, quindi se la classe di lavoro contiene lo stato, lo conterrà tra più richieste. Eseguendo semplicemente il CNonStatelessWorker wrapping di tale classe nel modello prima di usarla con CThreadPool, la durata del ruolo di lavoro e lo stato che contiene è limitata a una singola richiesta.

Requisiti

Intestazione: atlutil.h

CNonStatelessWorker::Execute

Implementazione di WorkerArchetype::Execute.

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

Osservazioni:

Questo metodo crea un'istanza della classe Worker nello stack e chiama Initialize su tale oggetto. Se l'inizializzazione ha esito positivo, questo metodo chiama anche Execute e Terminate sullo stesso oggetto.

CNonStatelessWorker::Initialize

Implementazione di WorkerArchetype::Initialize.

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

Valore restituito

Restituisce sempre TRUE.

Osservazioni:

Questa classe non esegue alcuna inizializzazione in Initialize.

CNonStatelessWorker::RequestType

Implementazione di WorkerArchetype::RequestType.

typedef Worker::RequestType RequestType;

Osservazioni:

Questa classe gestisce lo stesso tipo di elemento di lavoro della classe usata per il parametro modello di lavoro . Per informazioni dettagliate, vedere Panoramica di CNonStatelessWorker.

CNonStatelessWorker::Terminate

Implementazione di WorkerArchetype::Terminate.

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

Osservazioni:

Questa classe non esegue alcuna pulizia in Terminate.

Vedi anche

Classe CThreadPool
Archetipo Worker
Classi