Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Класс 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();