Partilhar via


task_completion_event Classe

A task_completion_event classe permite-lhe adiar a execução de uma tarefa até que uma condição seja cumprida, ou iniciar uma tarefa em resposta a um evento externo.

Sintaxe

template<typename _ResultType>
class task_completion_event;

template<>
class task_completion_event<void>;

Parâmetros

_ResultType
O tipo de resultado desta task_completion_event classe.

Membros

Construtores Públicos

Nome Description
evento_de_conclusão_de_tarefa Constrói um task_completion_event objeto.

Métodos Públicos

Nome Description
set Sobrecarregado. Define o evento de conclusão da tarefa.
set_exception Sobrecarregado. Propaga uma exceção a todas as tarefas associadas a este evento.

Observações

Use uma tarefa criada a partir de um evento de conclusão de tarefa quando o seu cenário exigir que crie uma tarefa que será concluída, e assim tenha as suas continuações agendadas para execução, em algum momento no futuro. Deve task_completion_event ter o mesmo tipo da tarefa que criar, e chamar o método set no evento de conclusão da tarefa com um valor desse tipo fará com que a tarefa associada seja concluída, fornecendo esse valor como resultado às suas continuações.

Se o evento de conclusão de tarefa nunca for sinalizado, quaisquer tarefas criadas a partir dele serão canceladas quando for destruído.

task_completion_event comporta-se como um apontador inteligente e deve ser passado por valor.

Hierarquia de herança

task_completion_event

Requerimentos

Cabeçalho: ppltasks.h

Namespace: simultaneidade

set

Define o evento de conclusão da tarefa.

bool set(_ResultType _Result) const ;

bool set() const ;

Parâmetros

_Result
O resultado a utilizar para configurar este evento.

Valor de retorno

O método devolve true se foi bem-sucedido a definir o evento. Ele retorna false se o evento já estiver definido.

Observações

Na presença de múltiplas ou simultâneas chamadas para set, apenas a primeira chamada terá sucesso e o seu resultado (se existir) será armazenado no evento de conclusão da tarefa. Os conjuntos restantes são ignorados e o método devolverá falso. Quando defines um evento de conclusão de tarefa, todas as tarefas criadas a partir desse evento serão imediatamente concluídas, e as suas continuações, se existirem, serão agendadas. Objetos de conclusão de tarefa que têm um _ResultType diferente de void passarão o valor para as suas continuações.

definir_exceção

Propaga uma exceção a todas as tarefas associadas a este evento.

template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;

__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;

Parâmetros

_E
O tipo de exceção.

_Except
A exceção a definir.

_ExceptionPtr
O ponteiro de exceção a definir.

Valor de retorno

evento_de_conclusão_da_tarefa

Constrói um task_completion_event objeto.

task_completion_event();

Consulte também

concorrência Namespace