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