Classe task_completion_event
A classe task_completion_event
permite atrasar a execução de uma tarefa até que uma condição seja atendida, 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 classe task_completion_event
.
Membros
Construtores públicos
Nome | Descrição |
---|---|
task_completion_event | Constrói um objeto task_completion_event . |
Métodos públicos
Nome | Descrição |
---|---|
set | Sobrecarregado. Define o evento de conclusão de tarefas. |
set_exception | Sobrecarregado. Propaga uma exceção para todas as tarefas associadas a esse evento. |
Comentários
Use uma tarefa criada por meio de um evento de conclusão de tarefas quando seu cenário solicitar que você crie uma tarefa que será concluída e, assim, terá as continuações agendadas para execução, em algum momento no futuro. O task_completion_event
deve ter o mesmo tipo da tarefa que você cria e a chamada do método de definição no evento de conclusão de tarefas com um valor desse tipo fará com que a tarefa associada seja concluída e fornecerá esse valor como resultado das continuações.
Se o evento de conclusão de tarefas nunca foi sinalizado, todas as tarefas criadas por meio dele serão canceladas quando ele for destruído.
task_completion_event
se comporta como um ponteiro inteligente e deve ser passado por valor.
Hierarquia de herança
task_completion_event
Requisitos
Cabeçalho: ppltasks.h
Namespace: concurrency
set
Define o evento de conclusão de tarefas.
bool set(_ResultType _Result) const ;
bool set() const ;
Parâmetros
_Result
O resultado com o qual definir esse evento.
Valor de retorno
O método retornará true
se tiver sido bem-sucedido na configuração do evento. Ele retornará false
se o evento já estiver definido.
Comentários
Na presença de várias ou chamadas simultâneas set
, somente a primeira chamada terá êxito e seu resultado (se houver) será armazenado no evento de conclusão da tarefa. Os conjuntos restantes são ignorados e o método retornará false. Ao definir um evento de conclusão de tarefa, todas as tarefas criadas a partir desse evento serão concluídas imediatamente e suas continuações, se houver, serão agendadas. Objetos de conclusão de tarefa que têm um _ResultType
diferente void
passarão o valor para suas continuações.
set_exception
Propaga uma exceção para todas as tarefas associadas a esse 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 ser definida.
_ExceptionPtr
O ponteiro de exceção a ser definido.
Valor de retorno
task_completion_event
Constrói um objeto task_completion_event
.
task_completion_event();