标签:
NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:
1> Foundation框架提供了两个具体子类直接供我们使用:NSInvocationOperation和NSBlockOperation
2> 自定义子类继承NSOperation,实现内部相应的方法
一.NSInvocationOperation
基于一个对象和selector来创建操作。如果你已经有现有的方法来执行需要的任务,就可以使用这个类。
二.NSBlockOperation
能够并发地执行一个或多个block对象,所有相关的block都执行完之后,操作才算完成。NSBlockOperation比NSInvocationOperation更加灵活。
通过addExecutionBlock方法添加block操作
设置操作的依赖关系:
利用 " addDependency "可以指定操作之间彼此的依赖关系(执行先后顺序),但是注意不要出现循环依赖.
设置同时并发的线程数量: [self.myQueue setMaxConcurrentOperationCount:2];
cancel和cancelAllOperations默认情况下,都不能取消已经正在执行的operation,只能取消在队列中等待的operation,如果硬要取消正在执行的,只能重写operation的main方法,并在main方法中添加对isCancel属性的监控
大多用自定义NSOperation。
标签:
原文地址:http://www.cnblogs.com/xing-li/p/4520325.html