Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 |
|---|---|
| evento_de_conclusão_de_tarefa | 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 a partir de um evento de conclusão de tarefa quando seu cenário exigir a criação de uma tarefa que será concluída e, portanto, terá as suas continuações agendadas para execução em algum momento 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 comporta-se como um ponteiro inteligente e deve ser passado por valor.
Hierarquia de herança
task_completion_event
Requisitos
Cabeçalho: ppltasks.h
Namespace: simultaneidade
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 chamadas ou chamadas simultâneas a set, somente a primeira chamada será bem-sucedida 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 do void passarão o valor para suas continuações.
definir_exceção
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 configurada.
_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();