Swift3.0--GCD

作者: 梦里风吹过 | 来源:发表于2016-09-15 03:06 被阅读566次

估计现在好多人在为这一块头疼,所以先来点干货。

//最常用模板
//全局队列异步执行
DispatchQueue.global().async {
    //耗时操作
    DispatchQueue.main.async {
        //回到主线程
    }
}
//创建新队列
DispatchQueue(label: "newQueue", attributes: .concurrent, target: nil).async {
    //并行队列异步执行
}
//创建新队列
DispatchQueue(label: "newQueue", attributes: .concurrent, target: nil).sync {
    //并行队列同步执行
}
//创建新队列
DispatchQueue(label: "newQueue").async {
    //串行队列异步执行
}
//创建新队列
DispatchQueue(label: "newQueue").sync {
    //串行队列同步执行
}
let delay:TimeInterval = 3
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delay) {
    //3秒后在主线程执行
}

dispatch_block_t在swift3.0已经没了 dispatch_block_t等价于() -> void
dispatch_queue_t等价于DispatchQueue
自己看语法特点
大致这么多差不多就能解决大部分问题了,其它自己根据GCD自己对号入座。

相关文章

  • Swift3.0--GCD

    估计现在好多人在为这一块头疼,所以先来点干货。 dispatch_block_t在swift3.0已经没了 di...

网友评论

  • erU:主线程卡死 有遇到吗。 卡。。。
    梦里风吹过:@erU 主线程卡死就把卡的部分开一个异步线程运行,然后拿到结果之后再送到主线程去处理
    erU:@谷尚科技iOS 就是主线成卡死
    梦里风吹过:@erU 你可以试试将耗时操作异步执行,得到结果后在主线程实现效果。就是用的第一个模板。
  • 514b5529cf49:干的漂亮

本文标题:Swift3.0--GCD

本文链接:https://www.haomeiwen.com/subject/tshbettx.html