iOS多线程应用开发中使用NSOperation类的基本方法

2020-01-14 16:31:27王旭

    NSBlockOperation *operation3=[NSBlockOperation blockOperationWithBlock:^{
        for (int i=0; i<5; i++) {
            NSLog(@"NSBlockOperation3--1----%@",[NSThread currentThread]);
        }
    }];
    [operation3 addExecutionBlock:^{
        for (int i=0; i<5; i++) {
        NSLog(@"NSBlockOperation3--2----%@",[NSThread currentThread]);
        }
    }];
    
    //设置操作依赖
    //先执行operation2,再执行operation1,最后执行operation3
    [operation3 addDependency:operation1];
    [operation1 addDependency:operation2];
    
    //不能是相互依赖
//    [operation3 addDependency:operation1];
//    [operation1 addDependency:operation3];
    
    //创建NSOperationQueue
    NSOperationQueue * queue=[[NSOperationQueue alloc]init];
    //把操作添加到队列中
    [queue addOperation:operation1];
    [queue addOperation:operation2];
    [queue addOperation:operation3];
}


复制代码
-(void)test1
{
    for (int i=0; i<5; i++) {
    NSLog(@"NSInvocationOperation--test1--%@",[NSThread currentThread]);
    }
}

 

-(void)test2
{
    for (int i=0; i<5; i++) {
    NSLog(@"NSInvocationOperation--test2--%@",[NSThread currentThread]);
    }
}

@end


打印查看:

 

iOS多线程应用开发中使用NSOperation类的基本方法

A做完再做B,B做完才做C。
注意:一定要在添加之前,进行设置。