XCode 16.4 日本語化計画
動的な数の子タスクを含めることができる新しいスコープを開始します。
@backDeployed(before: macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0)
func withTaskGroup<ChildTaskResult, GroupResult>(
of childTaskResultType: ChildTaskResult.Type = ChildTaskResult.self,
returning returnType: GroupResult.Type = GroupResult.self,
isolation: isolated (any Actor)? = #isolation,
body: (inout TaskGroup<ChildTaskResult>) async -> GroupResult
) async -> GroupResult where ChildTaskResult : Sendable
グループは、常に すべての子タスクが完了するまで待機してから戻ります。キャンセルされたタスクであっても、この関数が戻る前に完了するまで実行しなければなりません。キャンセルされた子タスクは、キャンセルに協調的に反応し、できるだけ早く戻ります。この関数が戻った後、タスクグループは常に空です。
グループの子タスクの結果を収集するには、for-await-in ループを使用できます。
var sum = 0
for await result in group {
sum += result
}
より詳細な制御が必要な場合、または結果が少数の場合、 next() を直接呼び出すことができます。
guard let first = await group.next() else {
group.cancelAll()
return 0
}
let second = await group.next() ?? 0
group.cancelAll()
return first + second
すべてのタスクグループ間で共有される意味の詳細については、TaskGroup のドキュメントを参照してください。
非同期作業の単位。
動的に作成された子タスクを含むグループ。
struct ThrowingTaskGroup
Throw し、動的に作成された子タスクを含むグループ。
動的な数の throw する子タスクを含めることができる新しいスコープを開始します。
struct TaskPriority
タスクの優先度。
struct DiscardingTaskGroup
動的に作成された子タスクを含む破棄するグループ。
動的な数の子タスクを含めることができる新しいスコープを開始します。
struct ThrowingDiscardingTaskGroup
動的に作成された子タスクを含む throw する破棄のグループ。
動的な数の子タスクを含めることができる新しいスコープを開始します。
struct UnsafeCurrentTask
現在のタスクへの安全でない参照。