1.關于GCD

Grand Central Dispatch是異步執(zhí)行任務的技術之一。我們先看一個簡單的示例:

平面設計培訓,網頁設計培訓,美工培訓,游戲開發(fā),動畫培訓

 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 }

平面設計培訓,網頁設計培訓,美工培訓,游戲開發(fā),動畫培訓

這個示例實現(xiàn)的功能很簡單:在后臺線程中執(zhí)行長時間的處理,處理結束后,在主線程中使用處理結果。上面實現(xiàn)方式是使用NSObject類的performSelectorInBackground和performSelectorOnMainThread來實現(xiàn)的。下面我們用GCD的方式來實現(xiàn)同樣功能,做個對比:

平面設計培訓,網頁設計培訓,美工培訓,游戲開發(fā),動畫培訓

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

網友評論