IOS DispatchWorkItem


The work you want to perform, encapsulated in a way that lets you attach a completion handle or execution dependencies.
A DispatchWorkItem encapsulates work to be performed on a dispatch queue or within a dispatch group. You can also use a work item as a DispatchSource event, registration, or cancellation handler.


WorkItem的功能就是把一項可能重複執行的task封裝起來,且能在multithread上執行(p.s. 透過DispatchQueue or DispatchGroup)並具備同步、取消的功能。

WorkItem的操作都只針對單一task,如果同時要管理多個task,則還是要使用DispatchGroup or DispatchSemaphore來管理。


  • Creating a Work Item
  • Executing the Work Item
  • Adding a Completion Handler
  • Waiting for the Completion of a Work Item
  • Canceling a Work Item

Sample code:

// Creating a Work Item
let workItem = DispatchWorkItem {
    print("This is my task")

// Executing the Work Item
workItem.perform() workItem)

// Waiting for the Completion of a Work Item

// Canceling a Work Item

// Adding a Completion Handler
workItem.notify(queue: DispatchQueue.main) {
    print("Finish executing work item")


%d 位部落客按了讚: