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 }