您的位置:首页 > 运维架构

NSOperation的其他设置

2015-12-31 22:36 537 查看
//监听操作
- (void)operationListen
{
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"NSBlockOperation--下载图片1--%@",[NSThread currentThread]);
}];

operation.completionBlock = ^{
//下载图片完,要做的事情
NSLog(@"NSBlockOperation--下载图片完毕--%@",[NSThread currentThread]);
};
}

- (void)operationQueue
{
//1.封装操作
NSInvocationOperation *operation1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(download) object:nil];
NSInvocationOperation *operation2 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run) object:nil];
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"NSBlockOperation--下载图片1--%@",[NSThread currentThread]);
}];

//2.创建队列
NSOperationQueue *queue = [[NSOperationQueue alloc] init];

//其他设置
//设置最大并发数
queue.maxConcurrentOperationCount = 2; //最大并发数为2(2-3为宜)
//设置依赖(不能相互依赖)
[operation1 addDependency:operation2]; //operation2执行完后才执行operation1

//3.添加操作到队列中
[queue addOperation:operation1];
[queue addOperation:operation2];
[queue addOperation:operation3];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: