iOS 几种定时器
2015-01-06 19:23
309 查看
dispatch_source_t timer; //全局
//第一种 每一秒执行一次(重复性)
double delayInSeconds = 1.0;
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW,
delayInSeconds * NSEC_PER_SEC, 0.0);
dispatch_source_set_event_handler(timer, ^{
NSLog(@"timer date 1== %@",[NSDate date]);
});
dispatch_resume(timer);
//第二种 二秒后执行 (一次性)
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,
(int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
NSLog(@"timer date 2== %@",[NSDate date]);
});
//第三种 每一秒执行一次 (重复性)
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:
@selector(testTimer) userInfo:nil repeats:YES];
//GCD定时器
dispatch_source_t timer=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
dispatch_source_set_timer(timer, dispatch_time(DISPATCH_TIME_NOW, 15ull*NSEC_PER_SEC), DISPATCH_TIME_FOREVER, 1ull*NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
NSLog(@"wakeup");
dispatch_source_cancel(timer);
});
dispatch_source_set_cancel_handler(timer, ^{
NSLog(@"cancel");
dispatch_release(timer);
});
//启动
dispatch_resume(timer);
//第一种 每一秒执行一次(重复性)
double delayInSeconds = 1.0;
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW,
delayInSeconds * NSEC_PER_SEC, 0.0);
dispatch_source_set_event_handler(timer, ^{
NSLog(@"timer date 1== %@",[NSDate date]);
});
dispatch_resume(timer);
//第二种 二秒后执行 (一次性)
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,
(int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
NSLog(@"timer date 2== %@",[NSDate date]);
});
//第三种 每一秒执行一次 (重复性)
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:
@selector(testTimer) userInfo:nil repeats:YES];
//GCD定时器
dispatch_source_t timer=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
dispatch_source_set_timer(timer, dispatch_time(DISPATCH_TIME_NOW, 15ull*NSEC_PER_SEC), DISPATCH_TIME_FOREVER, 1ull*NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
NSLog(@"wakeup");
dispatch_source_cancel(timer);
});
dispatch_source_set_cancel_handler(timer, ^{
NSLog(@"cancel");
dispatch_release(timer);
});
//启动
dispatch_resume(timer);
相关文章推荐
- iOS的几种定时器
- iOS中几种定时器 - 控制了时间,就控制了一切
- iOS--定时器(几种定时器的对比)
- iOS中的几种定时器
- iOS几种定时器
- iOS 几种定时器
- 浅谈几种iOS定时器
- IOS几种定时器
- iOS中几种定时器 - 控制了时间,就控制了一切
- iOS开发—几种定时器
- iOS中几种定时器
- iOS 中几种定时器 - 控制了时间,就控制了一切
- iOS中几种定时器
- iOS中几种定时器 - 控制了时间,就控制了一切
- [转]iOS 中几种定时器 - 控制了时间,就控制了一切
- iOS 中几种定时器 - 控制了时间,就控制了一切(转)
- iOS中几种定时器 - 控制了时间,就控制了一切 第三个同步视图刷新
- iOS中几种定时器 - 控制了时间
- iOS 中几种常用的定时器
- ios -几种常见定时器