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
命名空间: 并发
set
设置任务完成事件。
bool set(_ResultType _Result) const ;
bool set() const ;
参数
_Result
用于设置此事件的结果。
返回值
如果成功设置事件,此方法将返回 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
异常类型。
_Except
要设置的异常。
_ExceptionPtr
要设置的异常指针。
返回值
task_completion_event
构造 task_completion_event
对象。
task_completion_event();