Objective-C的NSOperation多线程类基本使用指南

2020-01-14 19:04:47王旭

基于一个对象和selector来创建操作。如果你已经有现有的方法来执行需要的任务,就可以使用这个类

 

2.创建并执行操作

复制代码
// 这个操作是:调用self的run方法  
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run) object:nil];  
// 开始执行任务(同步执行)  
[operation start];  
三、NSBlockOperation
1.简介
能够并发地执行一个或多个block对象,所有相关的block都执行完之后,操作才算完成

 

2.创建并执行操作

复制代码
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^(){  
        NSLog(@"执行了一个新的操作,线程:%@", [NSThread currentThread]);  
}];  
 // 开始执行任务(这里还是同步执行)  
[operation start];  
3.通过addExecutionBlock方法添加block操作
复制代码
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^(){  
    NSLog(@"执行第1次操作,线程:%@", [NSThread currentThread]);  
}];  
  
[operation addExecutionBlock:^() {  
    NSLog(@"又执行了1个新的操作,线程:%@", [NSThread currentThread]);  
}];  
  
[operation addExecutionBlock:^() {  
    NSLog(@"又执行了1个新的操作,线程:%@", [NSThread currentThread]);  
}];  
  
[operation addExecutionBlock:^() {  
    NSLog(@"又执行了1个新的操作,线程:%@", [NSThread currentThread]);