美文网首页
多线程的使用之dispatchasync

多线程的使用之dispatchasync

作者: petter102 | 来源:发表于2016-05-24 14:07 被阅读95次

处理耗时任务

两个同步搞定

  • 一般处理数据花费时间较长,但是最后刷新ui在主线程 处理代码如下:

          dispatch_sync(dispatch_get_global_queue(0, 0), ^{
              NSArray * array = @[
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"如果再看到关于纯代码,xib或storyboard,使用哪种方式进行UI布局更合适的讨论,请推荐他们先试用下 Masonry. Masonry,像xib一样快速,同时拥有作为纯代码方式的灵活性 — github关注度 7800 + 是有原因的!"},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"无论如何,你总是需要一个提示框."},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"SVProgressHUD是简单易用的显示器,用于指示一个持续进行的任务的进度."},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"RestKit 是一个用于更好支持RESTful风格服务器接口的iOS库,可直接将联网获取的json/xml数据转换为iOS对象."},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"FMDB 是SQLite的Objective-C封装库."},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"Pop 是一个可扩展的动画引擎,可用于实现任意iOS对象的任意属性的动态变化,支持一般动画,弹性动画和渐变动画三种类型."},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"高度可定制的应用欢迎页通用解决方案,可高度定制,不要仅限于现有的demo"},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"JVFloatLabeledTextField 是注重用户体验的”浮动标签模式”(Float Label Patter)的第一个实现,可以有效解决移动设备上进行表单输入时,无法边看表单提示边进行输入的困境,用户体验非常好."},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"用于为应用添加常用的上拉加载更多与下拉刷新效果,适用 UIScrollView、UITableView、UICollectionView、UIWebView."},
                                  @{@"img": @"https://camo.githubusercontent.com/be57d040ec0ce5d6467fb73564c6bcb6c76d5a7b/687474703a2f2f6472696262626c652e73332e616d617a6f6e6177732e636f6d2f75736572732f363431302f73637265656e73686f74732f313235343433392f666f726d2d616e696d6174696f6e2d5f6769665f2e676966", @"intro": @"iOS-blur使用一种巧妙的方式,为任意视图添加一种非常奇妙的模糊效果."}
                                  
                                  ];
              
              [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                  LPModel * model = [LPModel new];
                  model.imgUrl = @"https://raw.githubusercontent.com/ealeksandrov/EAIntroView/master/Screenshot02.png";
                  model.content = [obj objectForKey:@"intro"];
                  [self.dataList addObject:model];
                  
              }];
              dispatch_async(dispatch_get_main_queue(), ^{
                 
                  [self.tableView reloadData];
              });
          });

相关文章

  • 多线程的使用之dispatchasync

    处理耗时任务 两个同步搞定 一般处理数据花费时间较长,但是最后刷新ui在主线程 处理代码如下: disp...

  • 多线程基础

    什么是线程、多线程? 在学习iOS多线程应用之前,我们先来学习一下什么是线程? 线程是操作系统能够进行运算调度的最...

  • Swift使用GCD实现延迟和取消操作

    GCD 是⼀种⾮常⽅便的使⽤多线程的⽅式。通过使⽤ GCD,我们可以在确保尽量简单的语法的前提下进⾏灵活的多线程编...

  • IOS多线程

    多线程技术 Thread 给线程加锁使线程同步 Operation

  • 怎样的钱~你觉得安心

    恩赐的钱, 使你变成懒汉; 贺喜的钱, 使你加倍偿还; 赌博的钱, 使你倾家荡产; 捡来的钱, 使你用之不安; 讨...

  • Java基础之多线程

    什么是多线程?   线程是指程序运行的流程,多线程则是指可以运行一个以上线程的程序,多线程使程序运行的效率变得更高...

  • 多线程使用之-----synchronized/wait/not

    参考文献: java synchronized详解 synchronized 修饰方法 synchronized ...

  • iOS 多线程使用之NSOperation

    文章地址:http://goodrui.me/2017/07/13/iOS-%E5%A4%9A%E7%BA%BF%...

  • 5-多线程源码解析

    知道怎么使用之后我们来看看JDK中实现多线程的方式。 Thread类 先看看Thread类的开头 从此可见,JDK...

  • 为什么发送邮件要使用消息队列而不是多线程

    什么情况下的异步操作使用消息队列而不是多线程?消息队列和多线程两者并不冲突,多线程可以作为队列的生产者和消费者。使...

网友评论

      本文标题:多线程的使用之dispatchasync

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