你的位置:首页 > 软件开发 > 操作系统 > 多线程之NSOperation和NSOperationQueue

多线程之NSOperation和NSOperationQueue

发布时间:2016-05-06 22:00:08
这篇文章里我将不过多的谈及理论知识,这些东西会的自然会,不会的,看多了也是云里雾里。下面我讲更多的用代码+注释的方式来讲如何使用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 (#换成@)。