创建异步的NSOperation
来源:互联网 发布:windows安装ipython3 编辑:程序博客网 时间:2024/06/06 19:42
#import "ConcurrentOperation.h"@interface ConcurrentOperation(){ BOOL executing; BOOL finished;}@property (nonatomic, copy)NSString *cusName;@end@implementation ConcurrentOperation- (id)init { self = [super init]; if (self) { executing = NO; finished = NO; } return self;}- (instancetype)initWithName:(NSString *)name { self = [super init]; if (self) { executing = NO; finished = NO; _cusName = name; } return self;}//- (BOOL)isConcurrent {// return YES;//}- (BOOL)isAsynchronous { return YES;}- (BOOL)isExecuting { return executing;}- (BOOL)isFinished { return finished;}- (void)start { // Always check for cancellation before launching the task. NSLog(@"%@----start-----------------", _cusName); if ([self isCancelled]) { // Must move the operation to the finished state if it is canceled. [self willChangeValueForKey:@"isFinished"]; finished = YES; [self didChangeValueForKey:@"isFinished"]; return; } // If the operation is not canceled, begin executing the task. [self willChangeValueForKey:@"isExecuting"]; [NSThread detachNewThreadSelector:@selector(main) toTarget:self withObject:nil]; executing = YES; [self didChangeValueForKey:@"isExecuting"];}- (void)main { @try { // Do the main work of the operation here. NSInteger i = 1000; while (i--) { NSLog(@"%@----main---", _cusName); } [self completeOperation]; } @catch(...) { // Do not rethrow exceptions. }}- (void)completeOperation { [self willChangeValueForKey:@"isFinished"]; [self willChangeValueForKey:@"isExecuting"]; executing = NO; finished = YES; [self didChangeValueForKey:@"isExecuting"]; [self didChangeValueForKey:@"isFinished"];}
0 0
- 创建异步的NSOperation
- NSOperation创建的三种方式
- NSOperation中指定异步任务的依赖关系
- 使用NSOperation实现异步下载
- 使用NSOperation实现异步下载
- 使用NSOperation实现异步下载
- 使用NSoperation多线程异步…
- 继承NSOperation-自定义异步 Operation
- 使用NSOperation实现异步下载
- GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- iOS使用NSOperation创建线程
- 使用NSoperation多线程异步加载图片数据
- 使用NSoperation多线程异步加载图片数据
- 使用NSoperation 实现异步加载图片
- 使用NSoperation多线程异步加载图…
- 在NSOperation等待异步请求结束
- NSoperation的疑惑
- 关于 NSOperation 的取消
- mybatis log4j 设置
- ionic 的错误信息调试
- Skip List(跳跃表)原理详解与实现
- Java学习之Iterator(迭代器)的一般用法 (转)
- 避免Android中Context引起的内存泄露
- 创建异步的NSOperation
- 内存映射文件原理探索
- Beyond Compare软件使用教程
- tolua namespace
- objective-c 中随机数的用法 (rand()、arc4random() 、random()、CCRANDOM_0_1() )
- 明解C语言1-8
- qq第三方登录常见错误码信息对照表
- 安卓 EditText在用软键盘编辑点击删除键时程序无故闪退
- SpringMvc中ajax后台可以收到请求,前台依旧报错