一、GCD与NSThread方式的延时执行进行比较
导入前面封装的GCD
#import "GCD.h"
- (void)threadEvent:(id)sender{
NSLog(@"NSThread线程事件");
}
- (void)viewDidLoad {
[super viewDidLoad];
//[self initConcurrent];
NSLog(@"开始");
//NSThread
方式的延时执行操作
[self performSelector:@selector(threadEvent:)
withObject:self
afterDelay:2.0];
//取消当前被注册的延时操作
// [NSObject cancelPreviousPerformRequestsWithTarget:self];
//CCD方式延时执行操作
[GCDQueue executeInMainQueue:^{
NSLog(@"延时2秒执行");
} afterDelaySecs:2.f];
}
执行结果:
2015-07-11 11:24:02.654 GCDDelay[2735:213842]开始
2015-07-11 11:24:04.655 GCDDelay[2735:213842] NSThread线程事件
2015-07-11 11:24:04.796 GCDDelay[2735:213842]延时2秒执行
可以看出NSthread时间精准
二、打开 [NSObject cancelPreviousPerformRequestsWithTarget:self];
执行结果:
2015-07-11 11:30:56.768 GCDDelay[2796:220332]开始
2015-07-11 11:30:58.769 GCDDelay[2796:220332]延时2秒执行
可以看出 NSThread 线程被取消,没有执行
三、GCD延时执行的优缺点
优点:代码格式更整凑,简洁,写起方便
缺点:
延时精确度不高,不能取消当前的操作
四 、NSThread 与GCD区别
NSThread延时精确度高,能取消当前延时操作
版权声明:本文为博主原创文章,未经博主允许不得转载。