1.关于GCD

Grand Central Dispatch是异步执行任务的技术之一。我们先看一个简单的示例:

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

 1 - (void)doSomethingInBackground {  2     [self performSelectorInBackground:@selector(startWork) withObject:nil];  3 }  4   5 - (void)startWork {  6     //长时间处理操作  7     NSLog(@"进行长时间处理");  8       9     [self performSelectorOnMainThread:@selector(endWork) withObject:nil waitUntilDone:YES]; 10 } 11  12 - (void)endWork { 13     NSLog(@"完成工作并刷新页面"); 14 }

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

这个示例实现的功能很简单:在后台线程中执行长时间的处理,处理结束后,在主线程中使用处理结果。上面实现方式是使用NSObject类的performSelectorInBackground和performSelectorOnMainThread来实现的。下面我们用GCD的方式来实现同样功能,做个对比:

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

1     dispatch_queue_t queue = dispatch_queue_create("com.gcd.test", DISPATCH_QUEUE_CONCURRENT); 2     dispatch_async(queue, ^{ 3   &n
        
		

网友评论