IOS NSThread和NSOperation基本使用

来源:互联网 发布:淘宝店铺推广流程 编辑:程序博客网 时间:2024/05/22 12:40

NSThread适合简单的耗时任务的执行,它有两种执行方法

- (void)oneClick{   [NSThread detachNewThreadSelector:@selector(doSomething:) toTarget:self withObject:@"oneClick"];}-(void)doSomething:(NSString*) str{    NSLog(@"%@",str);}- (void)twoClick{    NSThread* myThread = [[NSThread alloc] initWithTarget:self                                                 selector:@selector(doSomething:)                                                   object:@"twoClick"];    [myThread start];}

NSOperation适合需要复杂的线程调度的方法,然后它默认是使用主线程不会创建子线程

- (void)threeClick{    // 1.创建NSInvocationOperation对象    NSInvocationOperation *op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run) object:nil];    // 2.调用start方法开始执行操作    [op start];}- (void)run{    NSLog(@"------%@", [NSThread currentThread]);}- (void)fourClick{    NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{        // 在主线程        NSLog(@"1------%@", [NSThread currentThread]);    }];    // 添加额外的任务(在子线程执行)    [op addExecutionBlock:^{        NSLog(@"2------%@", [NSThread currentThread]);    }];    [op addExecutionBlock:^{        NSLog(@"3------%@", [NSThread currentThread]);    }];    [op addExecutionBlock:^{        NSLog(@"4------%@", [NSThread currentThread]);    }];    [op start];}
阅读全文
0 0
原创粉丝点击