[swift] Swift GCD에서의 작업 취소와 폐기 방법
GCD(Grand Central Dispatch)를 사용하면 iOS 및 macOS 애플리케이션에서 백그라운드에서 작업을 실행할 수 있습니다. 때로는 실행 중인 작업을 취소하거나 폐기해야 할 수 있습니다. 이번 포스트에서는 Swift에서 GCD를 사용하여 작업을 취소하고 폐기하는 방법에 대해 살펴보겠습니다.
작업 취소하기
GCD에서 실행 중인 작업을 취소하려면 DispatchWorkItem
을 사용할 수 있습니다. DispatchWorkItem
은 실행할 작업을 캡슐화하고, 실행 중인 작업을 취소하거나 대기 중인 작업을 폐기할 수 있습니다.
다음은 작업을 취소하는 예제 코드입니다.
let workItem = DispatchWorkItem {
// 실행할 작업
}
// 작업을 큐에 추가
DispatchQueue.global().async(execute: workItem)
// 작업 취소
workItem.cancel()
위 코드에서 DispatchWorkItem
을 생성하고, cancel()
메서드를 사용하여 작업을 취소합니다.
작업 폐기하기
작업을 폐기하려면 DispatchWorkItem
의 상태를 확인하여 적절한 작업을 수행하면 됩니다. 다음은 작업을 폐기하는 예제 코드입니다.
let workItem = DispatchWorkItem {
guard !Thread.current.isCancelled else { return }
// 실행할 작업
}
// 작업을 큐에 추가
DispatchQueue.global().async(execute: workItem)
// 작업 폐기
workItem.cancel()
위 코드에서는 실행할 작업 내부에서 Thread.current.isCancelled
를 확인하여 작업을 폐기합니다.
GCD를 사용하여 작업을 취소하거나 폐기하는 방법을 살펴보았습니다. 작업을 취소하거나 폐기하는 것은 리소스를 효율적으로 관리하고 애플리케이션의 성능을 향상시키는 데 도움이 됩니다.
참고 문헌:
- DispatchWorkItem - Apple Developer Documentation
- Using DispatchWorkItem to manage work - Swift with Majid