Notice
Recent Posts
Recent Comments
Link
투케이2K
606. (ios/swift5) [간단 소스] DispatchWorkItem 간단 설명 및 사용 옵션 정리 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Swift
- 개발 툴 : Xcode
- 기술 구분 : DispatchWorkItem / 작업 캡슐화 / 이벤트 핸들러
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------
1. DispatchWorkItem 은 작업 (task) 의 캡슐화를 수행할 수 있는 클래스로 작업 항목 이벤트 등록 , 취소 핸들러로 사용할 수 있습니다
2. DispatchWorkItem 사용 가능 지원 범위 :
>> iOS 8.0 이상
>> 아이패드OS 8.0 이상
>> 맥 카탈리스트 13.0+
>> 맥OS 10.10+
>> tvOS 9.0 이상
>> 비전OS 1.0+
>> 워치OS 2.0 이상
>> Xcode 6.0.1+
3. DispatchWorkItem 작업 항목 생성 관련 :
>> init(qos: DispatchQoS, flags: DispatchWorkItemFlags, block: () -> Void) : 기존 블록에서 새로운 디스패치 작업 항목을 만들고 지정된 서비스 품질 클래스를 할당합니다
4. DispatchWorkItem 작업 항목 실행 관련 :
>> func perform() : 현재 스레드에서 작업 항목의 블록을 동기적으로 실행합니다
5. DispatchWorkItem 완료 핸들러 추가 관련 :
>> func notify(queue: DispatchQueue, execute: DispatchWorkItem) : 현재 작업 항목이 완료된 후 지정된 작업 항목의 실행을 예약합니다.
>> func notify(qos: DispatchQoS, flags: DispatchWorkItemFlags, queue: DispatchQueue, execute: () -> Void) : 현재 작업 항목이 완료된 후, 지정된 서비스 품질로 지정된 작업 항목의 실행을 예약합니다.
6. DispatchWorkItem 작업 완료 기다리기 관련 :
>> func wait() : 호출자가 디스패치 작업 항목 실행이 완료될 때까지 동기적으로 대기하도록 합니다.
>> func wait(timeout: DispatchTime) -> DispatchTimeoutResult : 호출자가 디스패치 작업 항목 실행이 완료되거나 지정된 시간이 경과할 때까지 동기적으로 대기하도록 합니다.
>> func wait(wallTimeout: DispatchWallTime) -> DispatchTimeoutResult : 호출자가 디스패치 작업 항목 실행이 완료되거나 지정된 시간이 경과할 때까지 동기적으로 대기하도록 합니다.
>> struct DispatchTime : 기본 시계를 기준으로 한 시간 지점이며 나노초 단위의 정밀도를 갖습니다.
>> struct DispatchWallTime : 벽시계에 따른 절대적 시점이며 마이크로초 단위의 정밀도를 가집니다.
7. DispatchWorkItem 작업 항목 취소 관련 :
>> func cancel() : 현재 작업 항목을 비동기적으로 취소합니다.
>> var isCancelled: Bool : 작업 항목이 취소되었는지 여부를 나타내는 부울 값입니다.
8. DispatchWorkItem 초기화 관련 :
>> init(flags: DispatchWorkItemFlags, block: () -> Void)
9. DispatchWorkItem 사용 예시 소스 코드 :
let workItem = DispatchWorkItem {
print(" @@@@@@@@@@@@@ Work item executed @@@@@@@@@@@@@ ")
}
let delay = DispatchTime.now() + 5 // [5초 후에 실행]
DispatchQueue.main.asyncAfter(deadline: delay, execute: workItem)
// workItem.cancel() // [예정 된 작업 취소]
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
https://developer.apple.com/documentation/dispatch/dispatchworkitem
https://blog.naver.com/kkh0977/223576532319?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'IOS' 카테고리의 다른 글
608. (ios/swift5) [유틸 파일] goAppNotificationSettings : 앱 알림 설정 창 이동 수행 (0) | 2024.12.08 |
---|---|
607. (ios/swift5) [간단 소스] DispatchGroup 간단 설명 및 사용 옵션 정리 (0) | 2024.12.05 |
605. (ios/swift5) [간단 소스] NWConnection.State 간단 설명 및 사용 옵션 정리 (0) | 2024.12.04 |
604. (ios/swift5) [간단 소스] WKUIDelegate 간단 설명 및 사용 옵션 정리 (0) | 2024.12.03 |
603. (ios/swift5) [간단 소스] WKScriptMessageHandler 간단 설명 및 사용 옵션 정리 (0) | 2024.12.03 |
Comments