iOS-nsoperration的简单操作
来源:互联网 发布:玲珑网游加速器mac 编辑:程序博客网 时间:2024/04/19 06:57
//// ViewController.m// 01-nsoperration//// Created by panba on 16-10-16.// Copyright (c) 2016年 panba. All rights reserved.//#import "ViewController.h"@interface ViewController () @end@implementation ViewController - (void)viewDidLoad { [super viewDidLoad];// [self blockOperation];// [self oprationqueue]; [self operationListen];}-(void)operationListen{ NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"-----block---%@",[NSThread currentThread]); }]; blockOperation.completionBlock = ^{ NSLog(@"-----block完成---%@",[NSThread currentThread]); //操作执行完之后的操作 }; NSOperationQueue *queue = [[NSOperationQueue alloc]init]; [queue addOperation:blockOperation]; }-(void)oprationqueue{ //1-添加事件 NSInvocationOperation *operation1 = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(download) object:nil]; //队列中线程的优先级 operation1.queuePriority = NSOperationQueuePriorityVeryHigh; NSInvocationOperation *operation2 = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(run) object:nil]; NSBlockOperation *blockoperation = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"-----block---%@",[NSThread currentThread]); }]; [blockoperation addExecutionBlock:^{ NSLog(@"-----block2---%@",[NSThread currentThread]); }]; //添加操作依赖 , 不同到队中队操作可以依赖 [operation2 addDependency:blockoperation]; [blockoperation addDependency:operation1]; //只有执行完操作1之后,才能执行操作2 //2-添加队列 NSOperationQueue *operationqueue = [[NSOperationQueue alloc]init]; //最大并发数 operationqueue.maxConcurrentOperationCount = 1; //一般在5以内 在2-3为宜 //添加操作到队列中,自动执行操作,自动开启线程 [operationqueue addOperation:operation1]; [operationqueue addOperation:operation2]; [operationqueue addOperation:blockoperation]; //暂停和恢复队列// [operationqueue setSuspended:YES]; //yes 暂停队列 no 恢复队列 }-(void)blockOperation{// NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^{// NSLog(@"-------download---%@",[NSThread currentThread]);// }]; NSBlockOperation *blockoperation = [[NSBlockOperation alloc]init]; [blockoperation addExecutionBlock:^{ NSLog(@"-------download-1---%@",[NSThread currentThread]); }]; [blockoperation addExecutionBlock:^{ NSLog(@"-------download-2---%@",[NSThread currentThread]); }]; [blockoperation addExecutionBlock:^{ NSLog(@"-------download-3---%@",[NSThread currentThread]); }]; [blockoperation start];}-(void)invocationoperation{ NSInvocationOperation *operation = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(download) object:nil]; [operation start];}-(void)download{ NSLog(@"-------download---%@",[NSThread currentThread]);}-(void)run{ NSLog(@"-------run---%@",[NSThread currentThread]);}@end
0 0
- iOS-nsoperration的简单操作
- iOS简单的文件操作
- ios sqlite3.0数据库的简单操作
- iOS-简单的数据库操作
- iOS上数据库SQLite的简单操作
- iOS 中几种简单常用的操作
- iOS 基于FMDB简单的查询操作
- ios 数据库简单操作
- iOS 简单文件操作
- IOS系列——键盘的简单操作
- IOS-NSString操作和容器的简单使用
- ios app开发简单实例--源代码管理的基本操作
- ios简单手势操作2
- IOS SWIFT 简单操作文件
- IOS开发之文件操作(一个简单的文件操作类)
- IOS简单Touch操作类UIGestureRecognizer
- IOS简单Touch操作类UIGestureRecognizer
- ios简单手势操作-模态视图
- fzu 2041 Checker 枚举 模拟
- JavaWeb学习之Servlet的学习(二)
- Codeforces 731C 并查集
- IOS 之 Swift教程(二) -入门语法(注释)
- 土巴兔2017校招前端开发
- iOS-nsoperration的简单操作
- 栀子花如何修剪
- PHP.8-HTML+CSS(二)-HTML详解
- 几种常见的排序算法及实现(三)
- Gradle sync failed: Could not find method android() for arguments [build_aj7feyco0x5e5hj3g6wttaj6$_
- echarts学习1----格式整理以及地图入门
- 【数据库】小谈事务
- kali2016.2源
- Android ActionBar创建带图片和文字的menu