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 Devolução

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 Devolução

task_completion_event

Constrói um objeto task_completion_event.

task_completion_event();

Confira também

Namespace de simultaneidade