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
.