task_handle Class

 

The task_handle class represents an individual parallel work item. It encapsulates the instructions and the data required to execute a piece of work.

template<
    typename _Function  
>  
class task_handle : public ::Concurrency::details::_UnrealizedChore;  

Parameters

_Function
The type of the function object that will be invoked to execute the work represented by the task_handle object.

Public Constructors

NameDescription
task_handle::task_handle ConstructorConstructs a new task_handle object. The work of the task is performed by invoking the function specified as a parameter to the constructor.
task_handle::~task_handle DestructorDestroys the task_handle object.

Public Operators

NameDescription
task_handle::operator() OperatorThe function call operator that the runtime invokes to perform the work of the task handle.

task_handle objects can be used in conjunction with a structured_task_group or a more general task_group object, to decompose work into parallel tasks. For more information, see Task Parallelism.

Note that the creator of a task_handle object is responsible for maintaining the lifetime of the created task_handle object until it is no longer required by the Concurrency Runtime. Typically, this means that the task_handle object must not destruct until either the wait or run_and_wait method of the task_group or structured_task_group to which it is queued has been called.

task_handle objects are typically used in conjunction with C++ lambdas. Because you do not know the true type of the lambda, the [make_task]--brokenlink--(../Topic/Concurrency%Namespace%20Functions.md#make_task) function is typically used to create a task_handle object.

The runtime creates a copy of the work function that you pass to a task_handle object. Therefore, any state changes that occur in a function object that you pass to a task_handle object will not appear in your copy of that function object.

task_handle

Header: ppl.h

Namespace: concurrency

The function call operator that the runtime invokes to perform the work of the task handle.

void operator()() const;

 

Constructs a new task_handle object. The work of the task is performed by invoking the function specified as a parameter to the constructor.

task_handle(const _Function& _Func);

Parameters

_Func
The function that will be invoked to execute the work represented by the task_handle object. This may be a lambda functor, a pointer to a function, or any object that supports a version of the function call operator with the signature void operator()().

Remarks

The runtime creates a copy of the work function that you pass to the constructor. Therefore, any state changes that occur in a function object that you pass to a task_handle object will not appear in your copy of that function object.

Destroys the task_handle object.

~task_handle();

concurrency Namespace
task_group Class
structured_task_group Class

Show: