Junior — Middle
Can task completion be controlled using Grand Central Dispatch?
sobes.tech AI
Answer from AI
Yes, with the help of Grand Central Dispatch (GCD), you can control the completion of a task. Typically, Dispatch Groups or Dispatch Work Items are used for this purpose.
- Dispatch Group allows you to combine multiple asynchronous tasks and receive a notification when all of them are completed:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Asynchronous task
group.leave()
}
group.notify(queue: .main) {
print("All tasks are completed")
}
- Dispatch Work Item allows you to track the execution of a specific task and cancel it if necessary:
let workItem = DispatchWorkItem {
print("Executing task")
}
DispatchQueue.global().async(execute: workItem)
// You can call workItem.cancel() to cancel
Thus, GCD provides mechanisms for controlling and synchronizing asynchronous operations.