(一)dispatch方法
为了方便地使用GCD,苹果提供了一些方法方便将block放在主线程和后台线程执行,或者延后执行。使用的例子如下所示:
后台执行
dispatch_async(dispatch_get_global_queue(0,0)),^{
//do something
})
主线程执行
dispatch_async(dispatch_get_main_queue(),^{
//do something
});
一次性执行
static dispatch_once_t onceToken;
dispatch_once(&onceToken,^{
//code to be executed once
});
延迟2秒执行
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime,dispatch_get_main_queue(),^(void){
//code to be executed on the main queue after delay
});