IOS中延时执行的几种方式的比较和汇总

原创 2015年11月18日 18:50:21

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。

- (void)delayMethod { NSLog(@"execute"); }

1.performSelector方法

[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
暂时未找到取消执行的方法。

2.定时器:NSTimer

[NSTimer scheduledTimerWithTimeIn<wbr>terval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];</wbr>

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
可以通过NSTimer类的- (void)invalidate;取消执行。

3. sleep方式

[NSThread sleepForTimeInterval:1.0f]; [self delayMethod];

此方式在主线程和子线程中均可执行。
是一种阻塞的执行方式,建方放到子线程中,以免卡住界面
没有找到取消执行的方法。

4.GCD方式

double delayInSeconds = 1.0; <wbr></wbr>
 <wbr>__block ViewController* bself = self; <wbr></wbr></wbr>
 <wbr>dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));</wbr>
<span style="word-wrap: normal; word-break: normal;">dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ <wbr></wbr></span>
 <wbr>[bself delayMethod]; });</wbr>

此方式在可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

IOS中的几种比较常见的延时方法的介绍及各自优缺点

- (void)delayMethod { NSLog(@"execute"); } 1.performSelector方法 [self performSelector:@selector(delay...

stm32CubeMX HAL库中延时的几种方式解析

stm32CubeMX HAL库中延时的几种方式解析 HAL_Dalay()是毫秒级延时,为了使用微秒级延时最近学习了一下,总结如下,推荐使用最后一种方式。 /* * 本文件包括...
  • hxkrrzq
  • hxkrrzq
  • 2016年10月13日 17:11
  • 7305

Android 实现延时执行操作的几种方法 总结以及代码

Android 实现延时执行操作的几种方法 总结以及代码
  • stvel
  • stvel
  • 2016年10月13日 18:37
  • 2087

(重复执行、延时)定时器实现的多种方式

作用: 1、定时执行某种功能 2、重复执行、定时重复执行、定次数执行某种功能 类别: 1、 Thread(new Runnable) 2、Thread() 3、Timer 4、Handler ····...

IOS学习 GCD 延时执行三种方法 并行/串行/主队列综合练习 队列组 shift+command+o快速查找

-(void)touchesBegan:(NSSetUITouch *> *)touches withEvent:(UIEvent *)event{        [self demo]; } ...
  • ridxmc
  • ridxmc
  • 2016年03月31日 23:35
  • 2468

iOS 延时执行的方法

iOS延时执行的四种方法#import "ViewController.h"@interface ViewController ()@end@implementation ViewController...

IOS数据持久化的几种方式

  • 2017年02月08日 15:32
  • 123KB
  • 下载

浅谈iOS开发中方法延迟执行的几种方式

Method1. performSelector方法 Method2. NSTimer定时器 Method3. NSThread线程的sleep Method4. GCD ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS中延时执行的几种方式的比较和汇总
举报原因:
原因补充:

(最多只允许输入30个字)