美文网首页
iOS 如何控制循环或递归时间

iOS 如何控制循环或递归时间

作者: 鹏雨燕 | 来源:发表于2019-10-12 11:44 被阅读0次

在日常开发中往往有这种需求,在后台下载大文件,前台主线程展示进度,或者说达成一定条件后(等待数据返回)再继续下一步。

或者是我需要递归循环多少次,但是需要递归的效率可控。

你可能马上会想到开辟一个线程用来数据下载或者递归,在主线程更新

-(void)load{
dispatch_queue_t q = dispatch_queue_create("bletest", DISPATCH_QUEUE_SERIAL);// 新建个线程,注意是串行队列,不然会开辟线程的,我们这里讨论的是单线程处理

[self recursive:q]; //来个无限递归
}

-(void) recursive:(dispatch_queue_t)q{
    dispatch_async(q, ^{
        usleep(50000);
        self->stamp ++;
        
        if([[testObject shareInstance].testDelegate respondsToSelector:@selector(delegatePrint:)]) {
            NSLog(@"in loop1%@",[NSThread currentThread]);
            
            [[testObject shareInstance].testDelegate delegatePrint:[NSString stringWithFormat:@"stamp = %d",self->stamp]];
            
        }
        [self recursive:q];
    });
}

这样就创建了一个节流限速线程了,更新ui的操作,在代理回调中指回主线程就好了。

相关文章

  • iOS 如何控制循环或递归时间

    在日常开发中往往有这种需求,在后台下载大文件,前台主线程展示进度,或者说达成一定条件后(等待数据返回)再继续下一步...

  • 二分法查找

    两种: 循环或递归 循环 详细戳这里 递归调用:binarySearchRecursion(key,a,0,a...

  • 用循环遍历树

    树的遍历用递归法最为简便,那么用循环该如何实现呢? 用循环方法后序遍历树。递归的本质是用了栈结构,不能用递归就自己...

  • 如何在 iOS 中解决循环引用的问题

    如何在 iOS 中解决循环引用的问题 如何在 iOS 中解决循环引用的问题

  • 13.递归函数

    目录:1.递归的介绍2.fibonacci数列3.递归和循环的比较 1.递归的介绍 函数直接或间接调用自身就是递归...

  • 递归&栈&队列

    递归有两部分组成: 递归条件和基线条件 递归条件是指自动调用自己循环 基线条件指跳出循环的条件 也可以理解为,如何...

  • 算法 -- 二分查找

    二分查找有两种实现:通过递归或循环 二分查找的前提是先要保证数组有序 递归 循环 github 完整代码 -- b...

  • 领扣算法12:整数转换为罗马数字

    题目描述: 递归实现: 循环实现: 递归与循环的比较:

  • 基础-3:关于递归

    1 概述 循环与递归是算法中最常见的控制过程的方法,循环自不必说,只要学过计算机语言,必然都会讲这种控制结构;而对...

  • iOS复习之Block

    iOS面试中如何优雅回答Block iOS block循环引用

网友评论

      本文标题:iOS 如何控制循环或递归时间

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