NSOperationQueue应用
来源:互联网 发布:linux管道实验 编辑:程序博客网 时间:2024/05/22 15:20
NSOperation
通常直接使用NSOperation子类:NSInvocationOperation、NSBlockOperation
NSOperation 创建同步与异步操作
//初始化一个操作,若像方式一直接调用start方法,为同步操作。即download方法会在主线程中执行. //方式二将操作添加到队列中为异步操作 //方式一 NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(downloadImage) object:nil]; [operation start]; //操作完成回调 [operation setCompletionBlock:^{ //更新UI }]; //方式二 NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^{ [self downloadImage]; }]; //设置优先级(实际工作中建议不设置优先级) blockOperation.queuePriority = NSOperationQueuePriorityHigh; //操作完成回调 [operation setCompletionBlock:^{ //获取主线程 [[NSOperationQueue mainQueue] addOperationWithBlock:^{ //更新UI }]; }]; //创建操作队列 NSOperationQueue *operationQueue=[[NSOperationQueue alloc]init]; operationQueue.maxConcurrentOperationCount=5;//设置最大并发线程数 [operation addDependency:blockOperation]; //设置依赖 //直接使用操队列添加操作 [operationQueue addOperation:blockOperation]; [operationQueue addOperation:operation]; [operationQueue cancelAllOperations];//取消队列所有操作
NSOperationQueue 创建异步操作
NSOperationQueue *operationQueue=[[NSOperationQueue alloc]init]; operationQueue.name = @"queue"; //将一个任务添加到队列 [operationQueue addOperationWithBlock:^{ //任务完成 //获取主线程 [[NSOperationQueue mainQueue] addOperationWithBlock:^{ //更新UI }]; }];
NSOperationQueue相关属性与方法
[operationQueue currentQueue];//获取当前队列
- (void)waitUntilAllOperationsAreFinished; //阻塞当前线程等待队列所有操作完成
[operationQueue setSuspended:YES];//队列挂起
0 0
- NSOperationQueue应用
- NSOperationQueue的简单应用
- NSOperationQueue的简单应用
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- NSOperationqueue
- NSOperationQueue
- NSOperationQueue
- NSOperationQueue
- 使用NSOperation和NSOperationQueue启动多线程开发应用
- 使用NSOperation和NSOperationQueue启动多线程开发应用
- 使用NSOperation和NSOperationQueue启动多线程开发应用
- NSOperationQueue简介
- ios NSCharacterSet使用讲解
- 移动端html5开发关于用js检测用户设备
- Android dialog 对话框自定义布局
- Android 给scrollView添加毛玻璃效果的标题栏
- Linux的压缩命令
- NSOperationQueue应用
- rename命令
- 一个简单的自定义通信协议(socket)
- 最简单的扫描生成二维码--附Demo
- UVA 11992 (维护多棵线段树,区间更新,区间替换)
- Androin 常用组件下拉框日期选择器、时间选择器、RadioButton、CheckBox使用
- 敏捷软件测试
- angularjs自定义表单验证email
- ionic 2 使用typescript