Partilhar via


CNonClasse de TrabalhadoresSem Estado

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

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

Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.

Sintaxe

template <class Worker>
class CNonStatelessWorker

Parâmetros

Trabalhador
Uma classe worker thread que cumpre o arquétipo worker adequada para lidar com pedidos em fila no CThreadPool.

Membros

Definições de Tipos Públicas

Nome Description
CNonStatelessWorker::RequestType Implementação do WorkerArchetype::RequestType.

Métodos Públicos

Nome Description
CNonStatelessWorker::Executar Implementação do WorkerArchetype::Execute.
CNonStatelessWorker::Inicializar Implementação do WorkerArchetype::Inicialize.
CNonStatelessWorker::Terminar Implementação do WorkerArchetype::Terminate.

Observações

Esta classe é um fio de trabalho simples para utilização com CThreadPool. Esta classe não oferece capacidades próprias de gestão de pedidos. Em vez disso, instancia uma instância de Worker por pedido e delega a implementação dos seus métodos a essa instância.

A vantagem desta classe é que oferece uma forma conveniente de alterar o modelo de estado para as classes worker thread existentes. CThreadPool Vai criar um único trabalhador durante toda a vida da thread, por isso, se a classe trabalhadora mantiver estado, irá mantê-lo em vários pedidos. Ao simplesmente envolver essa classe no CNonStatelessWorker template antes de a usar com CThreadPool, a vida útil do trabalhador e o estado que detém ficam limitados a um único pedido.

Requerimentos

Cabeçalho: atlutil.h

CNonStatelessWorker::Executar

Implementação do WorkerArchetype::Execute.

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

Observações

Este método cria uma instância da classe Worker na pilha e chama Initialize nesse objeto. Se a inicialização for bem-sucedida, este método também chama Execute e Terminate no mesmo objeto.

CNonStatelessWorker::Inicializar

Implementação do WorkerArchetype::Inicialize.

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

Valor de retorno

Retorna sempre VERDADEIRO.

Observações

Esta classe não faz qualquer inicialização em Initialize.

CNonStatelessWorker::RequestType

Implementação do WorkerArchetype::RequestType.

typedef Worker::RequestType RequestType;

Observações

Esta classe trata o mesmo tipo de item de trabalho que a classe usada para o parâmetro modelo Worker . Consulte a Visão Geral CNonStatelessWorker para mais detalhes.

CNonStatelessWorker::Terminar

Implementação do WorkerArchetype::Terminate.

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

Observações

Esta turma não faz qualquer limpeza em Terminate.

Consulte também

Classe CThreadPool
Arquétipo do Trabalhador
Classes