ios-NSOperation
来源:互联网 发布:天猫淘宝白菜群 编辑:程序博客网 时间:2024/05/29 16:16
ios中的NSOperation是一个抽象类,没有实现的类,
不能直接使用,方法没有实现,它是用作父类,用来约束子类都具有共同的属性和方法
NSOperation的子类
NSInvocationOperation
NSBlockOperation
自定义的operation
NSOperation和NSOperationQueue实现多线程的具体步骤
1、先将需要执行的操作封装到一个NSOperation对象中
2、然后将NSOperation对象添加到NSOperationQueue中
系统会自动将NSOperationQueue中的NSOperation取出来
将取出的NSOperation封装的操作放到一条新线程中执行。
NSOperation可以调用start方法来执行任务,默认是同步执行的。
如果将NSOperation添加到了NSOperationQueue队列中,系统会自动异步执行NSOperation中的操作
NSInvocationOperation类,调用start方法执行操作,就会调用target的sel的方法了
NSInvocationOperation * operation=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(test5) object:nil]; //不会开启新线程,就是更新操作的状态,调用main方法 [operation start];
NSInvocationOperation * operation=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(test5) object:nil]; //创建队列 NSOperationQueue * queue=[[NSOperationQueue alloc]init]; //把操作添加到队列中,这里父类的指针可以指向子类的指针,这里会开启线程 [queue addOperation:operation];NSBlockOperation类的使用和上面差不多就是初始化应该是,其他基本都一样的。
NSBlockOperation * operation=[NSBlockOperation blockOperationWithBlock:^{ NSLog(@"%@",[NSThread currentThread]); };还有种简单的操作,相当于是并发队列,异步执行。
NSOperationQueue * queue=[[NSOperationQueue alloc]init]; [queue addOperationWithBlock:^{ NSLog(@"%@",[NSThread currentThread]); }];
在NSOperation中进行线程通信,回到主线程去更新UI,其实只需要这么做
NSOperationQueue * queue=[[NSOperationQueue alloc]init]; [queue addOperationWithBlock:^{ //异步下载图片 NSLog(@"异步下载图片"); [[NSOperationQueue mainQueue]addOperationWithBlock:^{ NSLog(@"HAH"); }]; }];
//获取当前的队列
[NSOperationQueue currentQueue];
往一个操作中添加多个任务,调用start 会开启线程
NSBlockOperation * operation=[NSBlockOperation blockOperationWithBlock:^{ NSLog(@"%@",[NSThread currentThread]); }]; [operation addExecutionBlock:^{ NSLog(@"%@",[NSThread currentThread]); }]; [operation start];
阅读全文
0 0
- iOS NSOperation
- iOS NSOperation
- iOS NSOperation
- ios NSoperation
- ios-NSOperation
- iOS NSOperation
- IOS 多线程 NSOperation
- iOS多线程之NSOperation
- iOS多线程之NSOperation
- iOS线程 ----NSOperation
- 【iOS】多线程NSOperation
- iOS 之 NSOperation,NSOperationQueue
- iOS NSOperation使用方法简介
- iOS多线程之NSOperation
- ios多线程之NSOperation
- IOS多线程之NSOperation
- 【iOS开发】NSOperation
- IOS--UI--NSOperation
- 微服务与API 网关(下): Kong能为我们做什么?
- C# WF 使用webBrowser获取页面元素
- aa
- PK公有云,私有云凭什么能存活至今?
- 02.简单的认识Java
- ios-NSOperation
- C/C++ 中 fill ( ) 的运用及与memset ( ) 的区别
- VS 2010 提示:无法启动调试器,必需属性“VSInstallDir”缺失或为空
- [转载] CSDN-markdown基本语法说明
- R.xml.preference报错:preference cannot be resolved or is not a field
- 8月份6场热门IT互联网金融科技会议合集,附参会指南!【活动家】
- Eclipse自动更新代码到tomcat
- java基础之Math类
- ubuntu14.04下protobuf2.6安装