Swift DispatchWorkItem 的使用

2,022 阅读1分钟
private var task: DispatchWorkItem?

private func testDispatchWorkItem(){

if task != nil {
   task?.cancel()
}
                
            
task = DispatchWorkItem(qos: .default, flags: .barrier) {
  //loadData
}

//直接执行
let concurrentQueue = DispatchQueue(label: "top.felixplus.k.concurrent", qos: .default, attributes: .concurrent)
   
concurrentQueue.async(execute: task!)

//延迟 delay 时间以后执行

let delay: Double =  1000

let time =  DispatchTime.now() + delay
                    
DispatchQueue.main.asyncAfter(deadline: time, execute: task!)
            

}