码迷,mamicode.com
首页 > 移动开发 > 详细

ios多线程之GCD

时间:2014-09-06 02:14:02      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   ar   div   sp   log   


**
 dispatch_after 延时操作应用场景
 
 例如:游戏后台需要做一些随机的事件,需要在某个时间后,调用方法!
 
 1> 调用的方法通常是跟UI有关的,例如提示用户等
 2> 不了解GCD或者多线程的人,可以直接填空即可
 
 */
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self delay1];
}

#pragma mark - 延时操作
/** 在其他线程中调用 dispatch_after */
- (void)delay1
{
    // 1. 队列
    dispatch_queue_t q = dispatch_queue_create("myQueue", DISPATCH_QUEUE_CONCURRENT);
    
    // 2. 异步任务
    dispatch_async(q, ^{
        NSLog(@"延时开始前.... %@", [NSThread currentThread]);
        // 输入dispatch_after
        // 从当前时间,延迟2.0秒之后,给主队列添加一个任务(此任务会在主线程上【异步】运行)
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSLog(@"%@", [NSThread currentThread]);
        });
        NSLog(@"延时设置结束....");
    });
}


/** 在主线程调用dispatch_after */
- (void)delay
{
    NSLog(@"延时开始前....");
    // 输入dispatch_after
    // 从当前时间,延迟2.0秒之后,给主队列添加一个任务(此任务会在主线程上【异步】运行)
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        NSLog(@"%@", [NSThread currentThread]);
    });
    NSLog(@"延时设置结束....");
}

@end

 

**
 dispatch_after 延时操作应用场景
 
 例如:游戏后台需要做一些随机的事件,需要在某个时间后,调用方法!
 
 1> 调用的方法通常是跟UI有关的,例如提示用户等
 2> 不了解GCD或者多线程的人,可以直接填空即可
 
 */
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self delay1];
}

#pragma mark - 延时操作
/** 在其他线程中调用 dispatch_after */
- (void)delay1
{
    // 1. 队列
    dispatch_queue_t q = dispatch_queue_create("myQueue", DISPATCH_QUEUE_CONCURRENT);
    
    // 2. 异步任务
    dispatch_async(q, ^{
        NSLog(@"延时开始前.... %@", [NSThread currentThread]);
        // 输入dispatch_after
        // 从当前时间,延迟2.0秒之后,给主队列添加一个任务(此任务会在主线程上【异步】运行)
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSLog(@"%@", [NSThread currentThread]);
        });
        NSLog(@"延时设置结束....");
    });
}


/** 在主线程调用dispatch_after */
- (void)delay
{
    NSLog(@"延时开始前....");
    // 输入dispatch_after
    // 从当前时间,延迟2.0秒之后,给主队列添加一个任务(此任务会在主线程上【异步】运行)
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        NSLog(@"%@", [NSThread currentThread]);
    });
    NSLog(@"延时设置结束....");
}

@end

 

 

 

 
 
 

ios多线程之GCD

标签:style   blog   color   os   io   ar   div   sp   log   

原文地址:http://www.cnblogs.com/ndyBlog/p/3958934.html

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