iOS开发技术之延迟执行
2016-07-08 10:44
507 查看
转自:点击打开链接
延迟执行的几种方式;
延迟1秒执行代码
performSelector方法:
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,暂时未找到取消执行的方法。
定时器:NSTimer;
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,可以通过
sleep方式;
此方式在主线程和子线程中均执行。
是一种阻塞的执行方式,
GCD方式
此方式可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方式。
延迟执行的几种方式;
延迟1秒执行代码
-(void)delayMethod{ NSLog(@"delayMethodEnd"); }
performSelector方法:
[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,暂时未找到取消执行的方法。
定时器:NSTimer;
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,可以通过
NSTimer类的
- (void)invalidate;取消执行。
sleep方式;
[NSThread sleepForTimeInterval:1.0f]; [self delayMethod];
此方式在主线程和子线程中均执行。
是一种阻塞的执行方式,
建议放到子线程中,以避免卡住界面,没有找到取消执行的方法。
GCD方式
__weak id safeSelf = self; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [safeSelf delayMethod]; });
此方式可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方式。
相关文章推荐
- 基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
- js 延迟加载 改变JS的位置加快网页加载速度
- javascript图片延迟加载实现方法及思路
- jQuery实现鼠标滚动图片延迟加载效果附源码下载
- 使用jquery插件实现图片延迟加载技术详细说明
- javascript 延迟加载技术(lazyload)简单实现
- 浅析js预加载/延迟加载
- jquery插件lazyload.js延迟加载图片的使用方法
- ECHO.js 纯javascript轻量级延迟加载的实例代码
- jquery lazyload延迟加载技术的实现原理分析
- 关于延迟加载JavaScript
- laravel容器延迟加载以及auth扩展详解
- ASP.NET Mvc开发之EF延迟加载
- 图片延迟加载的实现代码(模仿懒惰)
- Hibernate延迟加载原理与实现方法
- Java程序中的延迟加载功能使用
- Hibernate延迟加载技术详解
- Webpack 实现 AngularJS 的延迟加载
- hibernate 如何实现延迟加载
- jQuery延迟加载(懒加载)插件 – jquery.lazyload.js