天天看点

iOS 多线程 NSOperation的简单使用——iOS 编码复习(八)(多线程6)

使用NSOpretion和NSOperationQueue进行多线程开发就是将NSOperation放到NSOperationQueue这个队列中,线程就会依次启动。NSOperationQueue就是一个队列。而NSOperation是相当于一个抽象类,不能直接使用,所以我们一般都使用它的两个子类来实现:NSInvocationOperation和NSBlockOperation,它们本质没有很大区别,只是block使用更方便一点。我们可以在viewDidLoad看看NSOperation提供了哪些API

NSOperation * operate = [[NSOperationalloc]init];

    if (!operate.isExecuting) {//是否执行执行中

        if (!operate.isReady) {//任务是否准备好

            [operate start];//开始执行

        }

    }

    //7.0之前isConcurrent判断同步、异步,7.0之后

    if ([UIDevicecurrentDevice].systemVersion.intValue>7.0) {

        if (operate.isAsynchronous) {

            NSLog(@"异步");

        }else{

            NSLog(@"同步");

        }

    }else{

        if (operate.isConcurrent) {

            NSLog(@"异步");

        }else{

            NSLog(@"同步");

        }

    }

    if (operate.isFinished) {//任务是否完成

        NSLog(@"完成");

    }

    if (operate.isCancelled) {//任务是否取消

        [operate cancel];//任务取消

    }

待续!