Classe CNonStatelessWorker
Recebe solicitações de um pool de threads e as passa para um objeto de trabalho que é criado e destruído em cada solicitação.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
template <class Worker>
class CNonStatelessWorker
Parâmetros
Trabalhador
Uma classe de thread de trabalho em conformidade com o arquétipo de trabalho adequado para lidar com solicitações enfileiradas no CThreadPool.
Membros
Typedefs públicos
Nome | Descrição |
---|---|
CNonStatelessWorker::RequestType | Implementação de WorkerArchetype::RequestType. |
Métodos públicos
Nome | Descrição |
---|---|
CNonStatelessWorker::Execute | Implementação de WorkerArchetype::Execute. |
CNonStatelessWorker::Initialize | Implementação de WorkerArchetype::Initialize. |
CNonStatelessWorker::Terminate | Implementação de WorkerArchetype::Terminate. |
Comentários
Essa classe é um thread de trabalho simples para uso com CThreadPool. Essa classe não fornece recursos próprios para tratamento de solicitações. Em vez disso, cria uma instância Worker por solicitação e delega a implementação de seus métodos para essa instância.
O benefício dessa classe é que ela fornece um modo conveniente de alterar o modelo de estado para classes de thread de trabalho existentes. O CThreadPool
criará um único trabalho para o tempo de vida do thread, portanto, se a classe de trabalho mantiver o estado, ela o manterá em várias solicitações. Ao simplesmente encapsular essa classe no modelo CNonStatelessWorker
antes de usá-la com CThreadPool
, o tempo de vida do trabalho e o estado que ele contém é limitado a uma única solicitação.
Requisitos
Cabeçalho: atlutil.h
CNonStatelessWorker::Execute
Implementação de WorkerArchetype::Execute.
void Execute(
Worker::RequestType request,
void* pvWorkerParam,
OVERLAPPED* pOverlapped);
Comentários
Esse método cria uma instância da classe Worker na pilha e chama Initialize nesse objeto. Se a inicialização for bem-sucedida, esse método também chamará Execute e Terminate no mesmo objeto.
CNonStatelessWorker::Initialize
Implementação de WorkerArchetype::Initialize.
BOOL Initialize(void* /* pvParam */) throw();
Valor de retorno
Sempre retorna TRUE.
Comentários
Essa classe não faz nenhuma inicialização em Initialize
.
CNonStatelessWorker::RequestType
Implementação de WorkerArchetype::RequestType.
typedef Worker::RequestType RequestType;
Comentários
Essa classe lida com o mesmo tipo de item de trabalho que a classe usada para o parâmetro de modelo de Worker. Confira CNonStatelessWorker Overview para mais detalhes.
CNonStatelessWorker::Terminate
Implementação de WorkerArchetype::Terminate.
void Terminate(void* /* pvParam */) throw();
Comentários
Essa classe não faz nenhuma limpeza em Terminate
.