• 多线程的延时执行和一次性代码


    延时执行的方法:

    - (void)delay3
    {
        // 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]);
    //    });
        
        // 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]);
        });
    }
    
    - (void)delay2
    {
        // 一旦定制好延迟任务后,不会卡住当前线程
        [self performSelector:@selector(download:) withObject:@"http://555.jpg" afterDelay:3];
    }
    
    - (void)delay1
    {
        // 延迟执行不要用sleep,坏处:卡住当前线程
        [NSThread sleepForTimeInterval:3];
        NSLog(@"-----下载图片-----");
    }

    一次性代码:

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        NSLog(@"----touchesBegan");
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            NSLog(@"----once");
        });
    }
  • 相关阅读:
    Delphi6函数大全(1)
    chr码值对应列表大全
    delphi控制POS打印机
    java network programming 第七章
    loop msn 2
    java ftp 资源
    java network programming 第六章
    IM模型的几个概念
    TCP/IP网络互连技术 卷3 winsock篇
    看你网络安全的水平!!
  • 原文地址:https://www.cnblogs.com/ZMiOS/p/4924244.html
Copyright © 2020-2023  润新知