型メソッド


detached(name:executorPreference:
priority:operation:)


与えられた throw しない操作を、新しい 非構造化の分離された トップレベルタスクの一部として非同期的に実行します。


iOS 18.0+ iPadOS 18.0+ Mac Catalyst 18.0+ macOS 15.0+

tvOS 18.0+ visionOS 2.0+ watchOS 11.0+

@discardableResult
static func detached(
    name: String? = nil,
    executorPreference taskExecutor: (any TaskExecutor)?,
    priority: TaskPriority? = nil,
    operation: sending @escaping () async -> Success
) -> Task<Success, Never>

SuccessSendable に準拠し FailureNever である場合時利用可能です。





パラメータ


name

人間が判読できるタスクの名前。


taskExecutor

子タスクが起動され、継続して使用されるタスク・エグゼキュータ。エグゼキュータ設定として明示的に nil を渡すと、設定なしと同等となり、実質的には外側のコンテキストのエグゼキュータ設定を継承することになります。globalConcurrentExecutor グローバル・エグゼキュータを明示的に渡すこともできます。


priority

operation (操作) タスクの優先度。このパラメータを省略するか、nil を渡すと、囲んでいるコンテキストの基本優先度が継承されます。


operation

実行すべき操作。



戻り値


タスクへの参照。



議論


子タスクなどの構造化された並行処理機能を使用して操作をモデル化できる場合は、分離した非構造化タスクを使用しないでください。子タスクは親タスクの優先度とタスクローカルな記憶装置を継承し、親タスクをキャンセルすると、その子タスクもすべて自動的にキャンセルされます。分離したタスクを使用する場合は、これらの考慮事項を手動で処理する必要があります。


Task.cancel() メソッドを呼び出してタスクをキャンセルしたい場合は、タスクへの参照を保持しておく必要があります。タスクへの参照を破棄しても、そのタスクが暗黙的にキャンセルされるわけではなく、明示的にキャンセルできなくなるだけです。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ