develop
DispatchWorkItem 본문
반응형
let workItem = DispatchWorkItem {
print("work Item")
}
workItem.perform()
work Item
생성자에 block을 넣는다.
perform 메서드로 block를 실행한다.
let workItem = DispatchWorkItem {
print("work Item")
}
workItem.notify(queue: DispatchQueue.main) {
print("notify")
}
workItem.perform()
work Item
notify
workItem이 끝나면 notify로 알림을 받을수 있다.
let workItem = DispatchWorkItem {
print("work Item")
}
let completeWorkItem = DispatchWorkItem {
print("complete WorkItem")
}
workItem.notify(queue: DispatchQueue.global(), execute: completeWorkItem)
workItem.perform()
work Item
complete WorkItem
notify에 workItem을 넣을수도 있다.
let workItem = DispatchWorkItem {
print("work Item")
}
workItem.notify(queue: DispatchQueue.main) {
print("notify isCancelled: \(workItem.isCancelled)")
}
workItem.cancel()
workItem.perform()
notify isCancelled: true
cancel메서드는 WorkItem의 블럭을 취소할 수 있다.
취소가 되더라도 notify에 알림이 온다. 취소된 값은 isCancelled으로 볼 수 있다.
workItem.wait(timeout: .now() + 3)
wait 메서드로 작업을 지연시킬수도 있다.
let workItem = DispatchWorkItem {
print("work Item")
}
DispatchQueue.main.async(execute: workItem)
DispatchQueue.global().async(execute: workItem)
work Item
work Item
GCD에 workItem을 넣을수도 있다.
반응형
'iOS' 카테고리의 다른 글
OperationQueue (0) | 2021.02.05 |
---|---|
Thread (0) | 2021.02.04 |
LazySequence (0) | 2021.02.02 |
Property(Stored Property, Lazy Property, Computed Property, Property Observers, Type Property) (0) | 2021.02.01 |
KVC KVO (Key-Value Coding, Key-Value Observing) (0) | 2021.01.31 |
Comments