假设现在队列中有多个操作(NSOperation),现在再向队列中加入新的操作,并且希望新增加的操作排在未执行操作的最前面。这时就需要设置操作的优先级了。
编写了个最简单的NSOperation,头文件:
#import <Foundation/Foundation.h>
@interface MyOperation : NSOperation{
NSString *name;
}
@property (nonatomic,retain) NSString *name;
@end
实现文件:
#import "MyOperation.h"
@implementation MyOperation
@synthesize name;
-(void) main{
NSLog(@"run operation: %@",name);
[NSThread sleepForTimeInterval:3];
}
@end
在控制器里创建3个实例:
- (void)viewDidLoad {
[super viewDidLoad];
queue=[[NSOperationQueue alloc] init];
[queue setMaxConcurrentOperationCount:1];
MyOperation *o1=[[[MyOperation alloc] init] autorelease];
o1.name=@"o1";
[queue addOperation:o1];
MyOperation *o2=[[[MyOperation alloc] init] autorelease];
o2.name=@"o2";
[queue addOperation:o2];
[NSThread sleepForTimeInterval:1];
MyOperation *o3=[[[MyOperation alloc] init] autorelease];
o3.name=@"o3";
[o3 setQueuePriority:NSOperationQueuePriorityHigh];
[queue addOperation:o3];
运行效果:
2011-07-26 14:47:23.822 NSOperationQueueDemo[27495:6003] run operation: o1
2011-07-26 14:47:26.823 NSOperationQueueDemo[27495:6003] run operation: o3
2011-07-26 14:47:29.824 NSOperationQueueDemo[27495:6203] run operation: o2
http://blog.csdn.net/diyagoanyhacker/article/details/6666075
分享到:
相关推荐
NSOperation NSOperationQueue demo 项目讲述了 NSOperation 和 NSOperationQueue 怎么使用。适合学习
该demo详细解释了gcd NSThread NSOperationQueue的用法.详细解释了子线程中如何刷新UI
NSOperationQueue + CompletionBlock NSOperationQueue的完成块。 乍看上去 Swift import NSOperationQueue_CompletionBlock let queue = NSOperationQueue () queue. completionBlock = { NSLog ( " I'm done! ...
计划网络请求(即运行请求A然后请求B,并赋予请求优先级) 限制并发网络请求的数量(例如,在任何给定时间运行5个网络请求) 以与其他NSOperation对象相同的方式控制这些网络操作(例如,您有一个NSOperation创建...
尽管NSOperation和NSOperationQueue在某些重复性问题上很好地工作,而在其他问题上则可以使用NSInvocation ,但iOS并未真正包含一组用于轻松管理大量任意背景任务的工具。 EDQueue提供了一个高级接口,用于使用和...
第一部分为抖音个人主页实现,包含NSOperationQueue多队列解析webp动图、网络资源拓扑云框架搭建。第二部分围绕AVPlayerLayer展开,涉及网络视频边播放边下载、 UITableView控制多个视频源播放。第三部分则为...
该项目旨在提供一种优化网络的简单方法,重点是使用 NSOperationQueue,而不是简单地使用 NSURLConnection 的异步 API 或使用 GCD 将工作卸载到辅助队列,后者对并发连接的数量和能力的控制较少取消。 批量下载多个...
GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得...
第一部分为抖音个人主页实现,包含NSOperationQueue多队列解析webp动图、网络资源二级缓存框架搭建。第二部分围绕AVPlayerLayer展开,涉及网络视频边播放边下载、UITableView控制多个视频源播放。第三部分则为...
利用 NSOperationQueue 实现摇奖机功能。 掌握 NSOperationQueue 的暂停功能结合业务实现效果
方便的NSOperationQueue和NSBlockOperation帮助器。 SSOperations在我的应用程序各种操作提供了。 安装 与安装。 添加到您的Podfile : pod 'SSOperations', :head # YOLO SSBlockOperation和...
YXQueue适用于iOS的OOP和轻松使用作业队列YXQueue被封装用于NSOperation。 线程的管理器和调用者按YXQueue划分。 使用它,开发人员将不会太在意线程管理,而只是关注如何创建作业和实现委托。建筑学...
NSOperationQueue只是类型别名为Queue以保存击键。 访问队列 主队列可通过Queue.Main访问 当前队列可通过Queue.Current访问 每个服务质量都有一个共享队列: 通过Queue.Interactive用户交互操作 用户通过Queue.User...
NSOperationDependency依赖关系需求:用户登录,付费,下载,通知用户 按顺序执行解决方案//设置依赖关系,这里是并发效率是比GCD得串行队列要好!...[[NSOperationQueue mainQueue] addOperation:op4];
NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation...
配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤 先将需要执行的操作封装到一个NSOperation对象中 然后将NSOperation对象添加到NSOperationQueue中 ...
iOS并发编程指南, 深入讲解iOS在编发编程中常用的GCD、NSOperation、NSOperationQueue的使用原理
该框架使用NSOperationQueue执行并发连接,并使用异步NSOperation操纵排队的调用。 ##使用示例 ###配置连接管理器 首先,让我们获取连接管理器的实例: AMConnectionManager *connectionManager = ...
从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。
同样,这个简单的类别允许选择注入我们要在其上执行选择器的队列( dispatch_queue_t或NSOperationQueue )。安装使用CocoaPods 将LRVariadicPerformSelector添加到您的Podfile: pod 'LRVariadicPerformSelector' ...