这篇文章里我将不过多的谈及理论知识,这些东西会的自然会,不会的,看多了也是云里雾里。下面我讲更多的用代码+注释的方式来讲如何使用NSOperation和NSOperationQueue。 1、NSOperation。是抽象类,不能够直接使用,而是使用子类NSInvocation ...
这篇文章里我将不过多的谈及理论知识,这些东西会的自然会,不会的,看多了也是云里雾里。下面我讲更多的用代码+注释的方式来讲如何使用NSOperation和NSOperationQueue。
1、NSOperation。是抽象类,不能够直接使用,而是使用子类NSInvocationOperation和NSBlockOperation来实际执行任务。NSOperation本身和多线程是没有任何关系的,她只是封装了一个代码段和数据去实现一个功能。
1.1、NSInvocationOperation,基于一个对象和selector来创建操作。看下面的代码:
1 - (void)invocationOperation { 2 3 NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(startOpration) object:nil]; 4 [operation setCompletionBlock:^{ 5 NSLog(@"执行完成,是否主线程:%@", [NSThread isMainThread] == 1 ? @"YES" : @"NO"); 6 }]; 7 [operation start]; //启动任务 8 [operation cancel]; //取消任务 9 [operation isExecuting]; //任务是否在执行10 [operation isFinished]; //任务是否已经结束11 }12 13 - (void)startOpration {14 NSLog(@"开始执行,是否主线程:%@", [NSThread isMainThread] == 1 ? @"YES" : @"NO");15 }
原标题:多线程之NSOperation和NSOperationQueue
关键词:线程
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。