• 延时执行的三种方式


     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 }
  • 相关阅读:
    关于在MDK中使用 printf 函数
    Stm32 SWD 下载 调试配置
    STM32使用以下规则对过滤器编号:
    STM32的can现场总线实验心得
    0R电阻作用
    Android activity 亮度调整
    电源信息监控
    android 圆环进度view
    com.google.zxing:core 生成二维码的简单使用
    自定义控件 监控宿主activity的生命周期
  • 原文地址:https://www.cnblogs.com/nxz-diy/p/5365608.html
Copyright © 2020-2023  润新知