摘要: http://blog.csdn.net/theonezh/article/details/7677086http://www.dreamingwish.com/dream-2012/of-of-of-of-gcd-introduced-1-basic-concepts-in-and-the-dispatch-queue.html 阅读全文
posted @ 2012-12-13 15:43 hhhker 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 两个核心方法:dispatch_async和dispatch_async_f,分别对应Block Objects方法和C Functions方法。我们举一个场景来进行:当我们需要从网络下载一个图片,可以将这个下载工作丢到一个异步线程里面,然后当图片下载完毕后,我们再交给主线程,让主线程去显示这个图片。在这种场景下,我们就需要甬道异步任务了。这里也涉及到了之前提到的__block方式操作本地资源。代码演示如下:dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 阅读全文
posted @ 2012-12-13 15:28 hhhker 阅读(1567) 评论(0) 推荐(0) 编辑
摘要: 如何在 block 中修改外部变量?????考虑到 block 的目的是为了支持并行编程,对于普通的 local 变量,我们就不能在 block 里面随意修改(原因很简单,block 可以被多个线程并行运行,会有问题的),而且如果你在 block 中修改普通的 local 变量,编译器也会报错。那么该如何修改外部变量呢?有两种办法,第一种是可以修改 static 全局变量;第二种是可以修改用新关键字 __block 修饰的变量。__block关键字一个Block的内部是可以引用自身作用域外的变量的,包括static变量,extern变量或自由变量(定义一个变量的时候,如果不加存储修饰符,默认情 阅读全文
posted @ 2012-12-13 10:12 hhhker 阅读(4328) 评论(0) 推荐(0) 编辑