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 }