派遣組允許組織線程知道一個或者多個任務(wù)執(zhí)行完成。
如果有一種場景太雨,比如在隊(duì)列中的任務(wù)沒有執(zhí)行完之前,主線程不應(yīng)該繼續(xù)往下運(yùn)行,此時就可以使用派遣組技術(shù)來讓一個或者多個隊(duì)列等待執(zhí)行完畢后再返回主線程芦圾。
下面的例子顯示了創(chuàng)建派遣組的基本用法:
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, queue, ^{
//執(zhí)行一些異步的工作
});
//一些其他的處理
//在派遣組中等待,阻止當(dāng)前的線程繼續(xù)執(zhí)行
dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
將隊(duì)列以及任務(wù)添加進(jìn)組俄认,使用方法dispatch_group_async,第11行調(diào)用了dispatch_group_wait方法等待所有組內(nèi)的任務(wù)結(jié)束后才會返回个少。