OC_GCD任务组在实际开发中的应用

2017-01-14  本文已影响44人  ISwiftUI
在实际的开发中,我们常常会遇到这样的一种需求,就是多个网络请求数据全都请求完毕之后,才是使用主线程更新UI的情况,未解决这一问题,我总结了几种解决的方法。

1.多线在开发中出现的频率总的来说还是相对较的,下面主要说一下GCD线程组的实现方式。

主要有这么三个步骤
1.创建线程组
2.发起异步请求,处理耗时操作
3.耗时操作全部执行完毕后,回到主线程

dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //  执行一个耗时操作的异步操作
});
dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //  执行一个耗时操作的异步操作
});
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    //  等待前面的异步操作都执行完毕后,回到主线程
});

2.使用全局变量计数,这是一种最简单的方法

3.使用RAC RAC 2.5的版本是OC的稳定版本,具体实现,可以去研究一下FRPH函数式编程[https://github.com/ReactiveCocoa/ReactiveCocoa.git]

上一篇 下一篇

猜你喜欢

热点阅读