NSOperation

来源:互联网 发布:淘宝内容营销效果评价 编辑:程序博客网 时间:2024/06/12 20:06

NSOperation: 抽象类,不能直接使用,需要使用其子类.(类似的类还有核心动画)

两个常用子类: NSInvocationOperation(调用) 和 NSBlockOperation(块);

两者没有本质区别,后者使用 Block 的形式组织代码,使用相对方便.

NSInvocationOperation在调用start方法后,不会开启新的线程只会在当前线程中执行。

NSBlockOperation 在调用start方法后,如果封装的操作数>1会开辟多条线程执行 =1 只会在当前线程执行.

 

NSOperationQueue 创建的操作队列默认为全局队列,队列中的操作执行顺序是无序的,如果需要让它有序执行需要添加依赖关系。

   // 操作op3依赖于操作op2;

   [op3 addDependency:op2];

    // 操作op2依赖于操作op1;

   [op2 addDependency:op1];

同时可以设置最大并发数

 

NSOperationQueue NSOperation支持 取消暂停的操作 但是正在进行的的操作并不能取消,这些操作一旦取消不可恢复.

0 0