Класс 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();