[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를 사용하여 작업을 취소하거나 폐기하는 방법을 살펴보았습니다. 작업을 취소하거나 폐기하는 것은 리소스를 효율적으로 관리하고 애플리케이션의 성능을 향상시키는 데 도움이 됩니다.

참고 문헌: