KillerRabbit THGDispatch 模块开源项目

我要开发同款
匿名用户2015年04月02日
97阅读
开发技术Swift
所属分类常用工具包、程序开发
授权协议MIT

作品详情

KillerRabbit是THGDispatch模块,包括GCDbits:Queues,Groups,Timer,Semaphore等等。

使用:

执行异步闭包:

Dispatch().async(.Background) {    doSomething()}

在后台队列执行异步闭包:

Dispatch().async(.Background) {    doSomething()}.notify(.Main) {    dearMainThreadImDone()}

执行一个异步闭包并等候3秒:

Dispatch().async(.Background) {    doSomething()}.wait(3) == false {    itTimedOutImSad()} else {    itWasSuccessfulAndMyLifeHasMeaning()}

执行一些异步任务:

DispatchGroup().async(.Background) {    doSomething(1)}.async(.Utility) {    doSomething(2)}.async(.High) {    doSomethingUrgently(3)}.wait()

或者:

let group = DispatchGroup()group.async(.Background) {    doSomething(1)}.async(.Utility) {    doSomething(2)}.async(.High) {    doSomethingUrgently(3)}if group.wait(10) == true {    handstandAndCartwheel()}

执行一个异步任务,同步一个Semaphore:

let semaphore = DispatchSemaphore(initialValue: 0)// start a NSURLSession to get some data from our imaginary command line tool.let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in    if data != nil {        let dataString: String = NSString(data: data, encoding: NSUTF8StringEncoding)! as String        json = JSON(string: dataString)    }    semaphore.signal()}task.resume()semaphore.wait()

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论