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_groupstructured_task_groupwaitrun_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();

另请参阅

并发命名空间
task_group 类
structured_task_group 类