【Swift】DispatchGroupの使い方!複数の非同期処理を完了まで待機する

この記事からわかること
- SwiftのDispatchGroupとは?
- DispatchQueueを使った非同期処理
- 複数の非同期処理を完了まで待機するには?
index
[open]
\ アプリをリリースしました /
環境
- Xcode:15.0.1
- iOS:17.1
- Swift:5.9
- macOS:Sonoma 14.1
DispatchGroupの使い方
SwiftのDispatchQueue
で非同期処理を実装する際に複数の処理を完了まで待ってから特定の処理を行うにはDispatchGroup
を使用します。enter
で始まりを通知しleave
で完了、notify
メソッドで全ての非同期処理が完了したことを検知することができます。
let group = DispatchGroup()
for i in 1...3 {
group.enter()
DispatchQueue.global().async {
Thread.sleep(forTimeInterval: 2)
print("非同期処理 \(i) :完了")
group.leave()
}
}
group.notify(queue: DispatchQueue.global()) {
print("全ての非同期処理が完了")
}
非同期処理 1 :完了
非同期処理 2 :完了
非同期処理 3 :完了
全ての非同期処理が完了
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。