GCD

来源:互联网 发布:拜占庭帝国 知乎 编辑:程序博客网 时间:2024/06/06 17:54

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


dispatch_async(

                   dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)

                   , ^{

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

                       

                       NSArray *files = [[NSFileManagerdefaultManager] subpathsAtPath:cachPath];

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

                       for (NSString *pin files) {

                           NSError *error;

                           NSString *path = [cachPathstringByAppendingPathComponent:p];

                           if ([[NSFileManagerdefaultManager] fileExistsAtPath:path]) {

                               [[NSFileManagerdefaultManager] removeItemAtPath:patherror:&error];

                           }

                       }

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




0 0