多线程NSOperation的使用

2015-08-06  本文已影响35人  JaneJie

简介

NSOperation的子类

NSInvocationOperation

-(id)initWithTarget:(id)targetselector:(SEL)selobject:(id)arg;
-(void)start;
//一旦执行操作,就会调用target的sel方法

NSBlockOperation

+(id)blockOperationWithBlock:(void(^)(void))block;
-(void)addExecutionBlock:(void(^)(void))block;

NSOperationQueue

-(void)addOperation:(NSOperation*)op;
-(void)addOperationWithBlock:(void(^)(void))block;

最大并发数

-(NSInteger)maxConcurrentOperationCount;
-(void)setMaxConcurrentOperationCount:(NSInteger)cnt;

队列的取消、暂停、恢复

-(void)cancelAllOperations;
提示:也可以调用NSOperation的-(void)cancel方法取消单个操作
-(void)setSuspended:(BOOL)b;// YES代表暂停队列,NO代表恢复队列
-(BOOL)isSuspended;

操作依赖

比如一定要让操作A执行完后,才能执行操作B,可以这么写
[operationBaddDependency:operationA];// 操作B依赖于操作A

操作的监听

-(void(^)(void))completionBlock;
-(void)setCompletionBlock:(void(^)(void))block;

自定义NSOperation

上一篇 下一篇

猜你喜欢

热点阅读