THGDispatch 模块 KillerRabbit

MIT
Swift 查看源码»
OS X
2015-04-02
叶秀兰

KillerRabbit 是 THGDispatch 模块,包括 GCD bits: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()


的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

JavaScript 编程精解 中文第三版 六、对象的秘密

来源:ApacheCN『JavaScript 编程精解 中文第三版』翻译项目 原文:The Secret Life of Objects 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第...

06/26 14:21
0
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部