KillerRabbit是THGDispatch模块,包括GCDbits:Queues,Groups,Timer,Semaphore等等。
使用:
执行异步闭包:
Dispatch().asyc(.Backgroud) { doSomethig()}在后台队列执行异步闭包:
Dispatch().asyc(.Backgroud) { doSomethig()}.otify(.Mai) { dearMaiThreadImDoe()}执行一个异步闭包并等候3秒:
Dispatch().asyc(.Backgroud) { doSomethig()}.wait(3) == false { itTimedOutImSad()} else { itWasSuccessfulAdMyLifeHasMeaig()}执行一些异步任务:
DispatchGroup().asyc(.Backgroud) { doSomethig(1)}.asyc(.Utility) { doSomethig(2)}.asyc(.High) { doSomethigUrgetly(3)}.wait()或者:
let group = DispatchGroup()group.asyc(.Backgroud) { doSomethig(1)}.asyc(.Utility) { doSomethig(2)}.asyc(.High) { doSomethigUrgetly(3)}if group.wait(10) == true { hadstadAdCartwheel()}执行一个异步任务,同步一个Semaphore:
let semaphore = DispatchSemaphore(iitialValue: 0)// start a NSURLSessio to get some data from our imagiary commad lie tool.let task = sessio.dataTaskWithRequest(request) { (data, respose, error) -> Void i if data != il { let dataStrig: Strig = NSStrig(data: data, ecodig: NSUTF8StrigEcodig)! as Strig jso = JSON(strig: dataStrig) } semaphore.sigal()}task.resume()semaphore.wait()
评论