iOS GCD(10)
//在Glocbal Dispatch Queue中非同步执行
dispatch_async(queue, ^{
//等待dispatch_apply方法中的全部处理执行结束
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_apply([array count], queue, ^(size_t index){
NSLog(@"%zu : %@",index,[array objectAtIndex:index]);
});
//dispatch_apply方法中的全部处理任务执行结束
dispatch_async(dispatch_get_main_queue(), ^{
//在主线程中执行处理
NSLog(@"done");
});
});
9、dispatch_suspend 和 dispatch_resume
[cpp]
//挂起指定的dispatch queue
dispatch_suspend(<#dispatch_object_t object#>)
//恢复指定的dispatch queue
dispatch_resume(<#dispatch_object_t object#>)
//这些方法对已经执行的处理没有影响,挂起后,追加到dispatch queue中但尚未处理的在此之后停止执行,而恢复后则使得这些处理能够继续执行。
//挂起指定的dispatch queue
dispatch_suspend(<#dispatch_object_t object#>)
//恢复指定的dispatch queue
dispatch_resume(<#dispatch_object_t object#>)
//这些方法对已经执行的处理没有影响,挂起后,追加到dispatch queue中但尚未处理的在此之后停止执行,而恢复后则使得这些处理能够继续执行。
10、dispatch_once
dispatch_once方法保证在应用程序执行中只执行一次指定处理的API。
[cpp]
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//code to be executed once
});
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//code to be executed once
});
相关新闻>>
- 发表评论
-
- 最新评论 更多>>