task_handle 类
task_handle
类表示单个并行工作项。 它封装执行一项工作所需的指令和数据。
语法
template<
typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;
参数
_Function
将调用以执行由 task_handle
对象所表示工作的函数对象的类型。
成员
公共构造函数
名称 | 描述 |
---|---|
task_handle | 构造新的 task_handle 对象。 任务的工作通过调用指定为构造函数参数的函数来执行。 |
~task_handle 析构函数 | 销毁 task_handle 对象。 |
公共运算符
“属性” | 描述 |
---|---|
operator() | 运行时调用以执行任务句柄工作的函数调用运算符。 |
备注
task_handle
对象可以与 structured_task_group
或更常规的 task_group
对象结合使用,以将工作分解为并行任务。 有关详细信息,请参阅任务并行。
请注意,task_handle
对象的创建者负责维护所创建 task_handle
对象的生存期,直到并发运行时不再需要它。 通常,这意味着在调用其所排队的 task_group
或 structured_task_group
的 wait
或 run_and_wait
方法之前,不得析构该 task_handle
对象。
task_handle
对象通常与 C++ lambda 结合使用。 由于不知道 lambda 的真实类型,因此通常使用 make_task 函数创建 task_handle
对象。
运行时创建传递给 task_handle
对象的工作函数的副本。 因此,传递给 task_handle
对象的函数对象中发生的任何状态更改都不会出现在该函数对象的副本中。
继承层次结构
task_handle
要求
标头:ppl.h
命名空间: 并发
operator()
运行时调用以执行任务句柄工作的函数调用运算符。
void operator()() const;
task_handle
构造新的 task_handle
对象。 任务的工作通过调用指定为构造函数参数的函数来执行。
task_handle(const _Function& _Func);
参数
_Func
将调用以执行由 task_handle
对象所表示工作的函数。 这可以是 lambda 函子、函数指针或支持具有签名 void operator()()
的函数调用运算符版本的任何对象。
备注
运行时创建传递给构造函数的工作函数的副本。 因此,传递给 task_handle
对象的函数对象中发生的任何状态更改都不会出现在该函数对象的副本中。
~task_handle
销毁 task_handle
对象。
~task_handle();