我一直在用C# .NET和Android开发许多软件。我注意到,这两个系统在UI Thread (Label/TextView等.)上的行为是相同的。为此,我不认为这只是为了防止线程之外的变化而设计的一致性。
人们遇到的最普遍的问题是,它们不能在创建的线程之外被更改(例如,Text属性)。我们要么在C#中使用C#,要么在Android中使用Handler。
我的问题是,为什么做控制必须实现这样的行为?如果我可以在创建它们的线程之外更改它们的属性/字段,会发生什么坏的情况呢?
编辑:感谢Raghunandanless为您提供参考。我已经知道了其中的一些部分,我对这个问题的主要关注是,为什么来自线程池的线程不能在您的UI线程上运行不能访问控件的属性/字段?安卓的View实际上只是POJO,我说的对吗?如果是这样的话,我认为任何线程都可以毫无问题地访问它们。如果我说错了什么,请澄清。
发布于 2013-08-15 08:21:53
出于同样的原因,在大多数标准库中,默认情况下集合是不同步的:
https://stackoverflow.com/questions/18248587
复制相似问题