iOS子线程更新UI的两种方法
来源:互联网 发布:js常用正则表达式 编辑:程序博客网 时间:2024/05/17 23:35
方法1:performSelectorOnMainThread
[self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:NO];
方法2:dispatch_async(dispatch_get_main_queue(), ^{ ... })dispatch_async开启一个异步操作,第一个参数是指定一个gcd队列,第二个参数是分配一个处理事物的程序块到该队列。
[self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:NO];
方法2:dispatch_async(dispatch_get_main_queue(), ^{ ... })
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
- // 处理耗时操作的代码块...
- //通知主线程刷新
- dispatch_async(dispatch_get_main_queue(), ^{
- //回调或者说是通知主线程刷新,
- });
- });
dispatch_get_global_queue(0, 0),指用了全局队列。
一般来说系统本身会有3个队列。global_queue,current_queue,以及main_queue.
获取一个全局队列是接受两个参数,第一个是我分配的事物处理程序块队列优先级。分高低和默认,0为默认2为高,-2为低
- #define DISPATCH_QUEUE_PRIORITY_HIGH 2
- #define DISPATCH_QUEUE_PRIORITY_DEFAULT 0
- #define DISPATCH_QUEUE_PRIORITY_LOW (-2)
处理完事物后,需要将结果返回给或者是刷新UI主线程,同样,和上面一样,抓取主线程,程序块操作。
2 1
- iOS子线程更新UI的两种方法
- iOS子线程更新UI的两种方法
- iOS子线程更新UI的两种方法
- 子线程更新Ui两种方法
- iOS开发-进阶:子线程更新UI的两种方法
- Android子线程更新UI的两种方法
- Android子线程更新UI两种方法
- Android子线程更新UI两种方法
- iOS子线程更新UI到主线程的三种方法
- Android子线程中更新UI的三种方法和获取message的两种方法总结
- Android子线程中更新UI的三种方法和获取message的两种方法总结
- 子线程更新UI的方法
- 子线程更新UI画面的方法
- Qt子线程更新UI的方法
- 子线程更新UI的方法
- Android子线程更新UI的方法
- Android在子线程更新UI的4种方法
- Android子线程中更新UI的3种方法
- 文件路径化简
- Oracle 11g 手工创建数据库实验
- XSS的原理分析与解剖:第四章(编码与绕过)
- ubuntu 12.04 安装Sublime Text
- SVN冲突解决
- iOS子线程更新UI的两种方法
- Memcached技术
- 面试题1(转)
- poj 3667 Hotel(线段树中级,区间合并)
- Qt中forward declaration of struct Ui::xxx的解决
- 2D Transformations
- iso隐藏键盘的方法
- struts2和springMVC框架的比较
- 博客生命