Tasks

Choose your operating system:

Windows

macOS

Linux

Classes

Name

Description

Public class

FPipe

A chain of tasks that are executed one after another.

Public class

FRefCountedBase

Intrusive atomic reference-counting base class.

Public class

FTaskBase

A base class for high-level task implementation.

Public class

FTaskEvent

A synchronisation primitive, a recommended substitution of `FEvent_ for signalling between tasks.

Public class

TPrerequisites

A convenient proxy collection for specifying task prerequisites that can include both tasks and task events usage: Launch(UE_SOURCE_LOCATION, [] {}, Prerequisites(Task1, Task2, TaskEvent1, ...));

Public class

TTask

A movable/copyable handle of `Private::TTaskWithResult*_ with the API adopted for public usage.

Public class

TTaskBase

A common part of the generic [TTask](API\Runtime\Core\Tasks\TTask)<ResultType>_ and its TTask_ specialisation

Public class

TTaskWithResult

Extends FTaskBase by supporting execution result.

Typedefs

Name

Description

FTask

Functions

Name Description

Public function

void

 

UE::Tasks::AddNested

(
    const TaskType& Nested
)

Adds the nested task to the task that is being currently executed by the current thread.

Public function

bool

 

UE::Tasks::BusyWait

(
    const TaskCollectionType& Tasks,
    FTimespan InTimeout
)

Wait for multiple tasks while executing other tasks

Public function

TTask< TInvo...

 

UE::Tasks::Launch

(
    const TCHAR* DebugName,
    TaskBodyType&& TaskBody,
    LowLevelTasks::ETaskPriority Priori...
)

Launches a task for asynchronous execution

Public function

TTask< TInvo...

 

UE::Tasks::Launch

(
    const TCHAR* DebugName,
    TaskBodyType&& TaskBody,
    PrerequisitesCollectionType&& Prer...,
    LowLevelTasks::ETaskPriority Priori...
)

Launches a task for asynchronous execution, with prerequisites that must be completed before the task is scheduled

Public function

TPrerequisit...

 

UE::Tasks::Prerequisites

(
    TaskTypes&... Tasks
)

Public function

TArray< Task...

 

UE::Tasks::Private::GetTraceIds

(
    const TaskCollectionType& Tasks
)

Public function

bool

 

UE::Tasks::Private::TryRetractAndExecute

(
    const TaskCollectionType& Tasks,
    FTimespan InTimeout
)

Public function

bool

 

UE::Tasks::Wait

(
    const TaskCollectionType& Tasks,
    FTimespan InTimeout
)

Wait for multiple tasks, with optional timeout