NSOperation

Posted baaingSheep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSOperation相关的知识,希望对你有一定的参考价值。

创建队列

  主队列 

let queue = NSOperationQueue.mainQueue()

  其他队列

let queue = NSOperationQueue()

//2.创建NSBlockOperation对象
let operation = NSBlockOperation { () -> Void in
    NSLog("%@", NSThread.currentThread())
}

//3.添加多个Block
for i in 0..<5 {
    operation.addExecutionBlock { () -> Void in
        NSLog("第%ld次 - %@", i, NSThread.currentThread())
    }
}

//4.队列添加任务
queue.addOperation(operation)

  NSOperationQueue 有一个参数 maxConcurrentOperationCount 最大并发数,用来设置最多可以让多少个任务同时执行。当你把它设置为 1 的时候,就是串行了。

  NSOperationQueue 还有一个添加任务的方法,- (void)addOperationWithBlock:(void (^)(void))block; ,这是不是和 GCD 差不多?这样就可以添加一个任务到队列中了,十分方便。

  NSOperation 有一个非常实用的功能,那就是添加依赖。依赖之后就是在之前的任务做完再继续,但它们可能会在不同的线程(?)

  

以上是关于NSOperation的主要内容,如果未能解决你的问题,请参考以下文章

NSOperation的使用

[iOS开发]NSOperation & NSOperationQueue

[iOS开发]NSOperation & NSOperationQueue

NSOperation completionBlock 被调用两次

在 NSOperation 中查找 NSManagedObject

iOS开发多线程篇—自定义NSOperation