NSOperation中指定异步任务的依赖关系

来源:互联网 发布:淘宝网商品域名 编辑:程序博客网 时间:2024/05/22 06:54

指定异步任务的依赖关系可以让任务按一定顺序执行。
注意:依赖关系可以跨队列。

例如,下载某文件后解压缩再更新UI,如果直接异步会乱序执行,这不合理,所以指定依赖关系。

范例:

-(void)depend{    NSBlockOperation *op1 = [NSBlockOperation blockOperationWithBlock:^{NSLog(@"下载")}];    NSBlockOperation *op2 = [NSBlockOperation blockOperationWithBlock:^{NSLog(@"解压")}];    NSBlockOperation *op3 = [NSBlockOperation blockOperationWithBlock:^{NSLog(@"更新UI")}];    //指定任务之间的依赖关系    [op2 addDependency:op1];    [op3 addDependency:op2];    //如果最后的参数是NO,那么会不等待上面的任务直接执行最后任务,如果是YES会等待上面执行完毕。    [self.opQueue addOperations:@[op1,op2,op3] waitUntilFinished:YES];    NSLog("最后的任务");}
0 0