首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要在创建UI控件的线程中操作UI控件?

为什么要在创建UI控件的线程中操作UI控件?
EN

Stack Overflow用户
提问于 2013-08-15 08:05:54
回答 1查看 88关注 0票数 2

我一直在用C# .NET和Android开发许多软件。我注意到,这两个系统在UI Thread (Label/TextView等.)上的行为是相同的。为此,我不认为这只是为了防止线程之外的变化而设计的一致性。

人们遇到的最普遍的问题是,它们不能在创建的线程之外被更改(例如,Text属性)。我们要么在C#中使用C#,要么在Android中使用Handler

我的问题是,为什么做控制必须实现这样的行为?如果我可以在创建它们的线程之外更改它们的属性/字段,会发生什么坏的情况呢?

编辑:感谢Raghunandanless为您提供参考。我已经知道了其中的一些部分,我对这个问题的主要关注是,为什么来自线程池的线程不能在您的UI线程上运行不能访问控件的属性/字段?安卓的View实际上只是POJO,我说的对吗?如果是这样的话,我认为任何线程都可以毫无问题地访问它们。如果我说错了什么,请澄清。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-15 08:21:53

出于同样的原因,在大多数标准库中,默认情况下集合是不同步的:

  1. 因为大多数情况下,您自然是在单线程内工作,并且不会支付同步代价。
  2. 仅仅同步小部件的方法是不够的,因为要原子地更新两个相关的小部件,首先必须同时锁定这两个部件。但是如果您这样做,那么同步的方法就是浪费代码和时间。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18248587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档