本文共 1017 字,大约阅读时间需要 3 分钟。
// 常规书写方式- (void)OPDemo{ // 1.创建队列 : 默认是并发的 NSOperationQueue *queue = [[NSOperationQueue alloc] init]; // 2.创建操作 : 默认是异步的 NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"%@",[NSThread currentThread]); }]; // 3.把操作添加到队列 [queue addOperation:op];}
// 简写- (void)OPDemo2{ // 定义全局的并发队列 NSOperationQueue *queue = [[NSOperationQueue alloc] init];; [queue addOperationWithBlock:^{ NSLog(@"%@",[NSThread currentThread]); }];}
// 现实生活中的实际写法// 线程间的通信 : 开发中常用的代码@implementation ViewController { // 定义全局的并发队列 NSOperationQueue *_queue;}- (void)viewDidLoad { [super viewDidLoad]; _queue = [[NSOperationQueue alloc] init];}- (void)OPDemo{ // 队列默认是全局并发的队列,理所当然在子线程执行,所以耗时操作就放在这里执行 [_queue addOperationWithBlock:^{ NSLog(@"正在下载... %@",[NSThread currentThread]); // 如果下载完成之后,回到主线程更新UI [[NSOperationQueue mainQueue] addOperationWithBlock:^{ NSLog(@"正在更新UI... %@",[NSThread currentThread]); }]; }];}
转载地址:http://bfkii.baihongyu.com/