关闭

GCD

41人阅读 评论(0) 收藏 举报

如何实现 不堵塞主线程的情况下,做大量的工作,最后所有的串行并行执行完成后再返回结果


dispatch_async(

                   dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)

                   , ^{

                       NSString *cachPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

                       

                       NSArray *files = [[NSFileManager defaultManager] subpathsAtPath:cachPath];

                       NSLog(@"files :%lu",(unsigned long)[files count]);

                       for (NSString *p in files) {

                           NSError *error;

                           NSString *path = [cachPath stringByAppendingPathComponent:p];

                           if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {

                               [[NSFileManager defaultManager] removeItemAtPath:path error:&error];

                           }

                       }

      [self performSelectorOnMainThread:@selector(clearCacheSuccess) withObject:nil waitUntilDone:YES];});//等待上面所有执行完成后再执行下一个方法




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1164次
    • 积分:99
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类