NSOperation的简单使用代码

注意点:需要将operation对象添加到队列中。代码:

NSOperationQueue * queue = [[NSOperationQueue alloc] init];

    

    NSBlockOperation * o1 = [NSBlockOperation blockOperationWithBlock:^{

        NSLog(@"1---%@", [NSThread currentThread]);

        NSLog(@"1.1---%@", [NSThread currentThread]);

        NSLog(@"1.2---%@", [NSThread currentThread]);

        NSLog(@"1.3---%@", [NSThread currentThread]);

        NSLog(@"1.4---%@", [NSThread currentThread]);

    }];

    NSBlockOperation * o2 = [NSBlockOperation blockOperationWithBlock:^{

        NSLog(@"2---%@", [NSThread currentThread]);

    }];

    NSBlockOperation * o3 = [NSBlockOperation blockOperationWithBlock:^{

        NSLog(@"3---%@", [NSThread currentThread]);

    }];

    

    [o3 addDependency:o1];  // 线程依赖

    [o3 addDependency:o2];    // 线程间不能相互依赖

    NSMutableArray * arr = [NSMutableArray array];

    [arr addObject:o1];

    [arr addObject:o2];

    [arr addObject:o3];

//    [queue addOperations:arr waitUntilFinished:YES];

    [queue addOperation:o1];

    [queue addOperation:o2];

    [queue addOperation:o3];

    

    NSLog(@"======================");

    

    // 如何监听所有的任务全部完成

    [queue addOperationWithBlock:^{

        NSLog(@"子线程%@", [NSThread currentThread]);

        

        // 回到主线程

        [[NSOperationQueue mainQueue] addOperationWithBlock:^{

            NSLog(@"回到主线程%@", [NSThread currentThread]);

        }];

    }];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值