iOS 任务的依赖操作

-(void)dependency{

    /**

     假设有A、B~C三个操作,要求:

     1. 3个操作都异步执行

     2. 操作C依赖于操作B

     3. 操作B依赖于操作A

     */

    //创建一个队列

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

    //可开辟线程的最大数量

    queue.maxConcurrentOperationCount = 3;

    

    //创建三个任务

    NSBlockOperation *operationA = [NSBlockOperation blockOperationWithBlock:^{

        //  A 任务

    }];

    

    NSBlockOperation *operationB = [NSBlockOperation blockOperationWithBlock:^{

        // B 任务

    }];

 NSBlockOperation *operationC = [NSBlockOperation blockOperationWithBlock:^{

        // C 任务

    }];

    //设置三个任务相互依赖

    // operationB 任务依赖于 operationA

    [operationB addDependency:operationA];

   //operationC 任务依赖于 operationB

   [operationC addDependency:operationB];

     //添加操作到队列中(自动异步执行任务,并发)

    [queue addOperation:operationA];

    [queue addOperation:operationB];

     [queue addOperation:operationC];

}

//A,B,C 三个任务 依次执行 程序中的操作,事件之间的相互依赖关系 按顺序执行 

posted @ 2017-02-17 17:26  tryFighting  阅读(494)  评论(0)    收藏  举报