XCode 16.4 日本語化計画
与えられた throw しない操作を、新しい 非構造化の分離された トップレベルタスクの一部として非同期的に実行します。
@discardableResult static func detached( name: String? = nil, priority: TaskPriority? = nil, operation: sending @escaping @isolated(any) () async -> Success ) -> Task<Success, Never>
Success が Sendable に準拠し Failure が any Error である場合時利用可能です。
name
人間が判読できるタスクの名前。
priority
operation (操作) タスクの優先度。このパラメータを省略するか、nil を渡すと、囲んでいるコンテキストの基本優先度が継承されます。
operation
実行すべき操作。
タスクへの参照。
子タスクのような構造化された同時実行機能を使用して操作をモデル化できる場合は、分離した非構造化タスクを使用しないでください。子タスクは親タスクの優先度とタスクローカルの記憶装置を継承し、親タスクをキャンセルするとすべての子タスクも自動的にキャンセルされます。分離タスクを使用する場合は、これらの考慮事項を手動で処理する必要があります。
Task.cancel() メソッドを呼び出してタスクをキャンセルしたい場合は、タスクへの参照を保持しておく必要があります。タスクへの参照を破棄しても、そのタスクが暗黙的にキャンセルされるわけではなく、明示的にキャンセルできなくなるだけです。