【Swift】DispatchQueueで遅延処理をキャンセルする方法!DispatchWorkItem

この記事からわかること
- SwiftのDispatchQueueとは?
- DispatchQueueを使った遅延処理
- 遅延処理をキャンセルする方法
index
[open]
\ アプリをリリースしました /
環境
- Xcode:15.0.1
- iOS:17.1
- Swift:5.9
- macOS:Sonoma 14.1
DispatchQueueで仕込んだ遅延処理をキャンセルする方法
SwiftのDispatchQueueで一定時間後に遅延(非同期)処理をキャンセルさせるにはDispatchWorkItem
を保持しておき、cancel
メソッドを呼び出すだけです。これで5秒後に実行予定だった処理を行わないようにさせることができます。
var workItem = DispatchWorkItem {
print("遅延処理")
}
// 5秒後に実行
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 5, execute: workItem)
// 2秒後にキャンセル
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) {
print("キャンセル")
workItem.cancel()
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。