init(executorPreference:priority:operation:)

    Runs the given throwing operation asynchronously as part of a new top-level task on behalf of the current actor.

    iOS
    18.0+
    macOS
    15.0+
    tvOS
    18.0+
    visionOS
    2.0+
    watchOS
    11.0+
    @discardableResult init(executorPreference taskExecutor: consuming (any TaskExecutor)?, priority: TaskPriority? = nil, operation: sending @escaping () async throws -> Success)

    Parameters

    taskExecutor

    the preferred task executor for this task, and any child tasks created by it. Explicitly passing nil is interpreted as “no preference”.

    priority

    The priority of the task. Pass nil to use the priority from Task.currentPriority.

    operation

    The operation to perform.

    Use this function when creating asynchronous work that operates on behalf of the synchronous function that calls it. Like Task.detached(priority:operation:), this function creates a separate, top-level task. Unlike detach(priority:operation:), the task created by Task.init(priority:operation:) inherits the priority and actor context of the caller, so the operation is treated more like an asynchronous extension to the synchronous operation.

    You need to keep a reference to the task if you want to cancel it by calling the Task.cancel() method. Discarding your reference to a detached task doesn’t implicitly cancel that task, it only makes it impossible for you to explicitly cancel the task.

    Other members in extension

    Type members

    Show obsolete interfaces (1)

    Hide obsolete interfaces

    Show system interfaces (1)

    Hide system interfaces