关闭

OC中代码延迟执行方式

559人阅读 评论(0) 收藏 举报

    第一种:

    [UIView animateWithDuration:1 delay:2 options:1 animations:^{

      

    } completion:^(BOOL finished) {

   

    }];

    //不会阻塞线程,animations  block中的代码对于是支持animation的代码,才会有延时效果,对于不支持animation的代码 不会有延时效果。

    

    第二种:

    [NSThread sleepForTimeInterval:3];//阻塞线程,浪费性能 ,一般不推荐用

    

    第三种:最常用,延迟2秒执行:

    double delayInSeconds = 2.0;

    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);

    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

        // code to be executed on the main queue after delay

      });

      //定制了延时执行的任务,不会阻塞线程,效率较高(推荐使用)

    

    第四种:最直接的方法,这种方法的缺点:每次要为延时写一个方法

    [self performSelector:@selector(test) withObject:nil afterDelay:3];//不阻塞线程

    

    5.使用NSOperationQueue,在应用程序的下一个主循环执行:

    [[NSOperationQueue mainQueue] addOperationWithBlock:aBlock];这个和调用performSelector: with afterDelay of 0.0f等价

0
0
查看评论

执行延迟IOS关于取消延迟执行函数的种种

写这篇博客要主是加深自己对执行延迟的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。 @interface NSObject (NSDelayedPerforming) - (void)performSelector:(SEL)aSelector withObject:...
  • sky_2016
  • sky_2016
  • 2014-12-12 17:52
  • 1353

笔记118--Android延时执行的四种方法

转自:http://jingyan.baidu.com/article/636f38bb091ebbd6b8461029.html 一、开启新线程 new Thread(new Runnable(){ public void run(){ Thread.s...
  • mwj_88
  • mwj_88
  • 2015-07-27 15:26
  • 5592

java 延迟执行代码

使用Sleep方法,就是去新建一个线程,然后里边放一个Thread.sleep()方法,这也是比较通俗的做法。          new Thread(){      ...
  • wdh314228223
  • wdh314228223
  • 2014-12-25 14:44
  • 3943

PHP 代码延时执行后面的代码

//金额小于5W 并且状态=0 支付时间大于15天 更改状态为 1,并转帐到会员余额 $sql1 = "select id,userid,price,payment_time from `" . $dbpre . "auction_record` where pr...
  • dongsg11200
  • dongsg11200
  • 2013-10-26 18:44
  • 6518

Objective-C延迟执行方法总结

1.performSelector 这种方法使用起来比较方便,也可以传递参数: [self performSelector:@selector(delayAction) withObject:nil afterDelay:2]; 系统也提供了取消要执行的方法: [[self class...
  • liu1347508335
  • liu1347508335
  • 2016-08-29 14:29
  • 1796

OC中的一些编程写法--({"添加代码"})

self.tableView.tableHeaderView = ({ UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 184.0f)]; UIImageView *imageView ...
  • allanGold
  • allanGold
  • 2016-11-14 14:01
  • 960

c# 异步延时执行代码

Task.Delay 异步延时using System; using System.Threading.Tasks;namespace ConsoleApp1 { class Program { static void Main(string[] args) ...
  • xiawu1990
  • xiawu1990
  • 2017-10-26 10:19
  • 718

js代码定时执行一个方法,延迟一定时间后执行一个函数

js或者前端页面,定时去执行一个方法的实现。 setTimeout(funcName,500); function funcName() { xxxxxx; } 0.5秒后执行funcName(),只执行一次    se...
  • qq_27093465
  • qq_27093465
  • 2016-05-20 17:22
  • 1260

Unity 延迟执行一段代码的较为优雅的方式

在Unity中,延时执行一段代码或者一个方法或者几个方法的情况非常普遍。 一般会用到Invoke和InvokeRepeating方法。顾名思义,第一个是执行一次,第二个是重复执行。 看下定义: void Invoke(string methodName, float time); ...
  • yjh4866
  • yjh4866
  • 2015-11-21 11:06
  • 5218

oc中关于延迟执行代码的一点解决办法

其实我用到的这种方法很简单,但是存在一些bug,这种方法会使线程休眠,阻塞线程的进行。现在就把这行代码写下来,希望能有所帮助 [NSThread sleepForTimeInterval:0.06f]; 0.06f为时间
  • a18730663665
  • a18730663665
  • 2014-12-10 16:06
  • 378
    个人资料
    • 访问:258509次
    • 积分:4625
    • 等级:
    • 排名:第7542名
    • 原创:205篇
    • 转载:1篇
    • 译文:12篇
    • 评论:19条
    最新评论