跟進和完善iCoder的答案,你可以並且應該做以下事情。
dispatch_queue_t serialQueue = dispatch_queue_create("com.unique.name.queue", DISPATCH_QUEUE_SERIAL);
dispatch_async(serialQueue, ^{
[self ReadAllImagesFromPhotosLibrary];
});
dispatch_async(serialQueue, ^{
[self WriteFewImagestoDirectory];
});
dispatch_async(serialQueue, ^{
[self GettingBackAllImagesFromFolder];
});
dispatch_async(serialQueue, ^{
[self MoveToNextView];
});
儘管上述呼籲是異步,他們將排隊,按順序運行爲DISPATCH_QUEUE_SERIAL狀態。 同步和異步之間的區別是,同步,你代碼將暫停並運行下面的代碼之前等待爲塊的答案,從而有可能凍結您的UI如果執行時間長。而async,代碼運行並且該塊異步返回。
但是,由於GCD(Grand Central Dispatch),您存儲在DISPATCH_QUEUE_SERIAL中的任務將按照它們添加的順序一個接一個地執行。
如果您對以下答案之一感到滿意,請將其標記爲正確答案。 – Benjamin