//监听操作
- (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];
}
NSOperation的其他设置
最新推荐文章于 2023-08-04 15:02:53 发布