Поделиться через


Класс «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 для события завершения задачи со значением такого типа приведет к завершению соответствующей задачи и предоставит это значение как результат продолжения.

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

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

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

task_completion_event

Требования

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

Пространство имен: конкурентность

набор

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

bool set(_ResultType _Result) const ;

bool set() const ;

Параметры

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

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

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

Замечания

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

установить_исключение

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

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

См. также

Пространство имен параллелизм