在我们的程序中,我们必须从服务器下载100多张图像并将其保存在本地。 我想在另一个主题中这样做。
问题是,我是否应该将它们全部一起运行,与全球队列中的GCD并行完成, 或者,如果我连续进行,将它们放入队列并使用NSOperation进行。 (我必须向用户显示流程的百分比)。
第一个选项:
for(int k=0;k<count;k++)
[self save];
-(void)save
{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^
{
//......
dispatch_sync(dispatch_get_main_queue(), ^
//....
}
选项2是这样的(将所有这些添加到队列中)
[self.imageOperationQueue addOperationWithBlock:^
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^
{
此外,是否必须在另一个线程中保存到用户默认值?
答案 0 :(得分:0)
我使用了第二个,它适用于:
[self.imageOperationQueue addOperationWithBlock:^
{
//download and create image
[[NSOperationQueue mainQueue] addOperationWithBlock:^
{
//save it to array