ios – 简单的GCD串行队列示例,如使用块的FIFO

前端之家收集整理的这篇文章主要介绍了ios – 简单的GCD串行队列示例,如使用块的FIFO前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我阅读了Apple文档,了解如何使用串行队列来确保以可预测的顺序执行任务,但现在我很困惑.
有些我如何能够连续工作,但仍然我不清楚,所以我需要简单的序列示例我的方法来连续执行.

我将我的功能分成4部分,现在希望它们能够连续执行

[self ReadAllImagesFromPhotosLibrary];

[self WriteFewImagestoDirectory];

[self GettingBackAllImagesFromFolder]; 

[self MoveToNextView];

解决方法

为了跟进和改进 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.而使用异步,代码运行,块被异步返回.

但是,由于GCD(Grand Central Dispatch),您存储在DISPATCH_QUEUE_SERIAL中的任务将按照添加的顺序等待并执行.

猜你在找的iOS相关文章