博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC中几种延时操作的比較
阅读量:6830 次
发布时间:2019-06-26

本文共 913 字,大约阅读时间需要 3 分钟。

1. sleepForTimeInterval,此函数会卡住当前线程,一般不用

[NSThread sleepForTimeInterval:3];

2. performSelector,定制好延迟任务后,不会卡主"当前线程"(3秒后运行download:方法)

[self performSelector:@selector(download:) withObject:@"http://555.jpg" afterDelay:3];

3.3秒后回到"主线程"运行block中的代码

dispatch_queue_t queue = dispatch_get_main_queue();
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{    NSLog(@"------task------%@", [NSThread currentThread]);});    dispatch_queue_t queue = dispatch_get_main_queue();dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{    NSLog(@"------task------%@", [NSThread currentThread]);})

4.3秒后自己主动开启"新线程"运行block中的代码

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{    NSLog(@"------task------%@", [NSThread currentThread]);});

转载地址:http://lgjkl.baihongyu.com/

你可能感兴趣的文章
Missing Screenshot 的解决方案
查看>>
jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...
查看>>
oracle11gR2安装示例数据库
查看>>
解决ssh的"Write failed: Broken pipe"问题
查看>>
Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
查看>>
拒绝alert调试js,浏览器调试js大全(火狐firefox浏览器,谷歌chrome 浏览器,微软ie9浏览器等)...
查看>>
EJDB 1.1.18 发布,嵌入式JSON数据库
查看>>
《深入理解Nginx》阅读与实践(三):使用upstream和subrequest访问第三方服务
查看>>
NGUI:HUD Text(头顶伤害漂浮文字)
查看>>
HTML/CSS/Javascript代码在线压缩、格式化(美化)工具
查看>>
linux命令学习-复制(cp,scp)
查看>>
cocos2d-x开发记录:二,基本概念(粒子系统,Scheduler和定时器)
查看>>
去掉Flex4生成的SWF加载时的进度条
查看>>
如何使用 MasterPage
查看>>
load dll
查看>>
Linux给指定用户或全部用户(已登录)发送消息
查看>>
C语言 队列 链式结构 实现
查看>>
关于同一用户不能同时登录问题的探讨(1/2)
查看>>
android-support-v7-appcompat的配置使用
查看>>
LINUX的STRACE命令用法 [转]
查看>>