码迷,mamicode.com
首页 > 其他好文 > 详细

延时执行的三种方式

时间:2016-04-07 22:09:03      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

 1 - (void)viewDidLoad
 2 {
 3     [super viewDidLoad];
 4     // Do any additional setup after loading the view, typically from a nib.
 5 }
 6 
 7 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 8 {
 9     NSLog(@"-----touchesBegan1-----");
10     
11 
12 
13     NSLog(@"-----touchesBegan2-----");
14 }
15 
16 - (void)download:(NSString *)url
17 {
18     NSLog(@"download------%@---%@", url, [NSThread currentThread]);
19 }
20 
21 - (void)delay3
22 {
23     // 3秒后回到主线程执行block中的代码
24 //    dispatch_queue_t queue = dispatch_get_main_queue();
25 //    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{
26 //        NSLog(@"------task------%@", [NSThread currentThread]);
27 //    });
28     
29     // 3秒后自动开启新线程 执行block中的代码
30     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
31     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), queue, ^{
32         NSLog(@"------task------%@", [NSThread currentThread]);
33     });
34 }
35 
36 - (void)delay2
37 {
38     // 一旦定制好延迟任务后,不会卡主当前线程
39     [self performSelector:@selector(download:) withObject:@"http://555.jpg" afterDelay:3];
40 }
41 
42 - (void)delay1
43 {
44     // 延迟执行不要用sleep,坏处:卡住当前线程
45     [NSThread sleepForTimeInterval:3];
46     NSLog(@"-----下载图片-----");
47 }

 

延时执行的三种方式

标签:

原文地址:http://www.cnblogs.com/nxz-diy/p/5365608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!