iOS子线程更新UI的两种方法
来源:互联网 发布:指导生活的算法mobi 编辑:程序博客网 时间:2024/05/17 08: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主线程,同样,和上面一样,抓取主线程,程序块操作。
0 0
- 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种方法
- 位运算
- CodeForces337D(树形DP)
- package com.skex.ttsdemo
- 希尔排序
- HDU Elevator
- iOS子线程更新UI的两种方法
- [HDU 2732]Leapin' Lizards[拆点][SAP]
- adb调试
- java调用matlab程序
- Java各个集合(Collection)的特性和用途
- 在Pycharm 中import os 或者import selenium from selenium import webdriver就会报错
- TOJ 1962.Skew Binary
- 带具体进度的进度条对话框
- Spark安装部署