Discussion
解説
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 Task.detached(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.