Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.