码迷,mamicode.com
首页 > 编程语言 > 详细

GCD多线程的使用(五)

时间:2015-07-19 19:54:05      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

        上一篇有个函数没有说: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

 

GCD多线程的使用(五)

标签:

原文地址:http://www.cnblogs.com/arthas/p/4659112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!