为什么不能在子线程中修改UI

转载 2017年10月13日 09:09:46

1、在子线程中是不能进行UI 更新的,而可以更新的结果只是一个幻像:因为子线程代码执行完毕了,又自动进入到了主线程,执行了子线程中的UI更新的函数栈,这中间的时间非常的短,就让大家误以为分线程可以更新UI。如果子线程一直在运行,则子线程中的UI更新的函数栈 主线程无法获知,即无法更新

2、只有极少数的UI能,因为开辟线程时会获取当前环境,如点击某个按钮,这个按钮响应的方法是开辟一个子线程,在子线程中对该按钮进行UI 更新是能及时的,如换标题,换背景图,但这没有任何意义

PS:个人认为其他的原因。

3.UI是非线程安全的,主线程和子线程同时更新UI的话会导致错误,如UI错乱之类的。

4.UI更新是很耗性能的,更别说为了线程安全加锁了,最简单的方法就是更新UI的操作放到一个线程中,即主线程;

相关文章推荐

GCD为什么不能在子线程更新UI

以前也只是听说子线程下不能更新UI ,但不知道为什么今天手写了一个demo终于找的了答案#import "AlexViewController.h" #import "AlexTwoViewCoVie...

Android 中确定子线程不能更新UI吗?

文章转载自  http://blog.csdn.net/xyh269/article/details/52728861 Android的UI访问是没有加锁的,这样在多个线程访问UI是不安全的。所...

多线程学习之--真的不能在子线程里更新UI吗?

在我们学习多线程的路上,都会听到这样一句话: 不能在子线程里更新UI,UI更新必须在UI线程中 why?为什么不能在子线程中更新UI?如果在子线程中更新UI会怎样? 为了模拟在子线程中更新UI的...

Android系统上可以在子线程修改UI吗

一个简单的问题:在Android系统上,我们可以在子线程修改UI吗? 假设我们现在不知道,我们写个demo试一下。代码如下: demo 1: public class MainActivity ext...

android 不能在子线程中更新ui的讨论和分析

相信初学者通常以为只能在主线程更新UI,那么能在其他线程更新UI?下面这篇文章将讨论下能否在子线程中更新UI文章地址:http://blog.csdn.net/self_study问题描述做过Andr...

android 不能在子线程中更新ui的讨论和分析

问题描述  做过android开发基本都遇见过ViewRootImpl$CalledFromWrongThreadException,上网一查,得到结果基本都是只能在主线程中更改ui,子线程要修改ui...

Android_自定义Toast、子线程修改UI

一、自定义Toast ①、在layout文件夹下创建自定义的Toast布局文件 ②、创建自定义Toast的java文件,继承Toast类 ③、编写MyToast代码,如下: ...

安卓在子线程中如何修改ui界面

1. Android进程 一个应用程序被启动时,系统默认创建执行一个叫做"main"的线程。这个线程也是你的应用与界面工具包(android.widget和android.view包中的组件)交互的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)