Класс task_completion_event

Класс task_completion_event позволяет отложить выполнение задачи до выполнения условия или запустить задачу в ответ на внешнее событие.

Синтаксис

template<typename _ResultType>
class task_completion_event;

template<>
class task_completion_event<void>;

Параметры

_ResultType
Тип результата данного класса task_completion_event.

Участники

Открытые конструкторы

Имя Описание
Task_completion_event Формирует объект task_completion_event.

Открытые методы

Имя Описание
set Перегружен. Задает событие завершения задачи.
set_exception Перегружен. Распространяет исключение для всех задач, связанных с этим событием.

Замечания

Если требуется создать задачу, которая будет завершена и, тем самым, будет иметь запланированное продолжение для выполнения в определенный момент в будущем, следует использовать задачу, созданную из события завершения задачи. Объект task_completion_event должен быть того же типа, что и создаваемая задача. Вызов метода set для события завершения задачи со значением такого типа приведет к завершению соответствующей задачи и предоставит это значение как результат продолжения.

Если о событии завершения задачи не сообщается, все задачи, созданные из этого события, будут отменены при его уничтожении.

task_completion_event ведет себя как интеллектуальный указатель и должен передаваться по значению.

Иерархия наследования

task_completion_event

Требования

Заголовок: ppltasks.h

Пространство имен: concurrency

set

Задает событие завершения задачи.

bool set(_ResultType _Result) const ;

bool set() const ;

Параметры

_Результат
Результат, с которым нужно задать это событие.

Возвращаемое значение

Метод возвращается true в случае успешного задания события. Возвращается false , если событие уже задано.

Замечания

В присутствии нескольких или одновременных вызовов setтолько первый вызов будет успешным, и его результат (если таковой) будет сохранен в событии завершения задачи. Остальные наборы игнорируются, а метод возвращает значение false. При задании события завершения задачи все задачи, созданные из этого события, будут немедленно завершены, а его продолжения, если таковые есть, будут запланированы. Объекты завершения задачи, не _ResultType имеющие значения void , передаются в их продолжения.

set_exception

Распространяет исключение для всех задач, связанных с этим событием.

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

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

Параметры

_E
Тип исключения.

_Кроме
Исключение, заданное.

_ExceptionPtr
Указатель исключения для задания.

Возвращаемое значение

Task_completion_event

Формирует объект task_completion_event.

task_completion_event();

См. также

Пространство имен concurrency