网络多线程-NSOperation操作依赖和监听

来源:互联网 发布:淘宝客服介入处理时间 编辑:程序博客网 时间:2024/05/01 20:28

#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    //1.创建队列

    NSOperationQueue *queueA = [[NSOperationQueuealloc]init];

    NSOperationQueue *queueB = [[NSOperationQueuealloc]init];

    //2.封装操作

    NSBlockOperation *download1 = [NSBlockOperationblockOperationWithBlock:^{

        NSLog(@"download1----%@",[NSThreadcurrentThread]);

    }];

    

    NSBlockOperation *download2 = [NSBlockOperationblockOperationWithBlock:^{

        NSLog(@"download2----%@",[NSThreadcurrentThread]);

    }];

    

    //添加操作监听

    download2.completionBlock = ^{

        NSLog(@"打电话给我-----%@",[NSThreadcurrentThread]);

    };

    

    NSBlockOperation *download3 = [NSBlockOperationblockOperationWithBlock:^{

        NSLog(@"download3----%@",[NSThreadcurrentThread]);

    }];

    

    NSBlockOperation *download4 = [NSBlockOperationblockOperationWithBlock:^{

        for (NSInteger i =0; i <100; i++) {

             NSLog(@"download4-%zd---%@",i,[NSThreadcurrentThread]);

        }

    }];

    

    //添加操作依赖

    //注意:不能设置循环依赖

    [download1 addDependency:download4];

    

    //3.添加操作到队列

    [queueA addOperation:download1];

    [queueA addOperation:download2];

    [queueA addOperation:download3];

    [queueB addOperation:download4];

    

}

@end


0 0