zoukankan      html  css  js  c++  java
  • GCD多线程的使用(五)

            上一篇有个函数没有说:dispatch_walltime,这个函数是由struct timespec类型的时间得到dispatch_time_t类型的值。dispatch_time函数通常用于计算相对时间,dispatch_walltime函数用于计算绝对时间。

            struct timespec类型的时间可以通过NSDate类的对象生成:

    - (void) getDispatchTime {
        double second, subsecond;
        struct timespec time;
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        NSDate *date = [dateFormatter dateFromString:@"2015-06-19 16:14:10"];
        NSTimeInterval interval = [date timeIntervalSince1970];  //从1970到date这个时间过去的秒数
        
        subsecond = modf(interval, &second);  //modf  分解一个值,返回小数部分,第二个参数输出整数部分
        time.tv_sec = second;
        time.tv_nsec = subsecond * NSEC_PER_SEC;
        
        dispatch_time_t dispatchTime = dispatch_walltime(&time, 0);
        
        NSLog(@"now...");
        dispatch_after(dispatchTime, dispatch_get_main_queue(), ^{
            NSLog(@"%@", date);
        });
        
    }

            输出结果:

    2015-06-19 16:13:47.100 GCD_Study[23839:607] now...
    2015-06-19 16:14:10.001 GCD_Study[23839:607] 2015-06-19 08:14:10 +00
  • 相关阅读:
    生活重心
    做自己才对,想多只会徒增烦恼
    列下计划,一个个实现吧
    公司搬迁
    限制文件的类型
    总结
    mvc mvp mvvm区别
    sessionStorage
    localStorage点击次数存储
    2016.09.01 html5兼容
  • 原文地址:https://www.cnblogs.com/arthas/p/4659112.html
Copyright © 2011-2022 走看看