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.
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();