[swift] Swift GCD에서의 작업 타임아웃 설정 방법

GCD(Grand Central Dispatch)를 사용하여 비동기 작업을 수행할 때 작업이 일정 시간 내에 완료되지 않을 경우를 대비해서 타임아웃을 설정하는 방법을 이해하고자 한다면, 다음의 단계를 따를 수 있습니다.

1. DispatchWorkItem을 사용하여 작업 정의

먼저, GCD에서 타임아웃을 설정하려면 DispatchWorkItem을 사용하여 작업을 정의해야 합니다.

let workItem = DispatchWorkItem {
    // 작업 내용
}

2. 타임아웃 시간 설정

다음으로, 타임아웃 시간을 결정해야 합니다. 이 예시에서는 5초로 설정하겠습니다.

let timeout: DispatchTime = .now() + 5

3. 타임아웃 설정 및 실행

DispatchQueue를 사용하여 작업을 실행하고, wait 메서드를 사용하여 타임아웃을 설정합니다.

DispatchQueue.global().async(execute: workItem)

if workItem.wait(timeout: timeout) == .timedOut {
    // 타임아웃 발생 시 처리할 작업
}

이제 GCD를 사용하여 작업을 수행하고, 해당 작업이 지정된 시간 내에 완료되지 않을 경우 타임아웃을 처리할 수 있습니다.

4. 참고 자료

이렇게하여 GCD에서의 작업 타임아웃을 설정할 수 있습니다.