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.

Confira também

Classe CThreadPool
Arquétipo de trabalhador
Classes