Grand Central Dispatch Sample
说来惭愧,做 iDev 一年多了,最近才第一次在正式项目中使用 GCD。做个笔记。
Grand Central Dispatch(GCD) 是苹果 iOS 4 推出的任务调度机制,把不同的任务分配给不同的 queue 来处理,非常适合异步任务,支持多核处理器,比 performSelectorInBackground 这种线程调度有更好的处理性能,而且配合 Blocks 使用非常方便。
dispatch_queue_t bgQueue = dispatch_queue_create("im.fann.bgQueue", NULL);
// or dispatch_queue_t bgQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// or dispatch_queue_t bgQueue = dispatch_get_global_queue(0, 0,); for short
dispatch_async(bgQueue, ^{
...// load data from server
dispatch_async(dispatch_get_main_queue, ^{
// dispatch_get_main_queue get back to the main queue to update UI. You can only change UI in main queue.
[rootTableView reloadData];
});
});
非常棒的 GCD 系列教程:
Was this page helpful?