Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

task Class (Concurrency Runtime)

The Parallel Patterns Library (PPL) task class. A task object represents work that can be executed asynchronously, and concurrently with other tasks and parallel work produced by parallel algorithms in the Concurrency Runtime. It produces a result of type _ResultType on successful completion. Tasks of type task<void> produce no result. A task can be waited upon and canceled independently of other tasks. It can also be composed with other tasks using continuations(then), and join(when_all) and choice(when_any) patterns.

template <
   typename _Type
>
class task;

template <>
class task<void>;

template<
   typename _ReturnType
>
class task;

_Type
T
_ReturnType

The result type of this task.

Name

Description

result_type

The type of the result an object of this class produces.

Name

Description

task::task Constructor

Overloaded. Constructs a task object.

Name

Description

task::get Method

Overloaded. Returns the result this task produced. If the task is not in a terminal state, a call to get will wait for the task to finish. This method does not return a value when called on a task with a result_type of void.

task::is_apartment_aware Method

Determines whether the task unwraps a Windows Runtime IAsyncInfo interface or is descended from such a task.

task::is_done Method (Concurrency Runtime)

Determines if the task is completed.

task::scheduler Method (Concurrency Runtime)

Returns the scheduler for this task

task::then Method

Overloaded. Adds a continuation task to this task.

task::wait Method

Waits for this task to reach a terminal state. It is possible for wait to execute the task inline, if all of the tasks dependencies are satisfied, and it has not already been picked up for execution by a background worker.

Name

Description

task::operator!= Operator

Overloaded. Determines whether two task objects represent different internal tasks.

task::operator= Operator

Overloaded. Replaces the contents of one task object with another.

task::operator== Operator

Overloaded. Determines whether two task objects represent the same internal task.

Header: ppltasks.h

Namespace: concurrency

Show:
© 2014 Microsoft