Andoid UI工具包不是线程安全的,当您尝试从工作线程修改UI时,您会获得CalledFrowWrongThreadException
(或类似的东西)。
此外,开发指南说:
[从工作线程操作UI]可能导致未定义和 意外行为,可以 跟踪困难且耗时 下来。
但我觉得很难理解CalledFrowWrongThreadException
的意思。
文档是在引入CalledFrowWrongThreadException
之前编写的还是仍然存在不抛出异常的情况? (或者在追踪错误确实困难且耗时的情况下)
答案 0 :(得分:0)
就像Java中的Swing和.NET中的WinForms一样,可能是有问题的方法没有检查以确定您是从正确的线程调用的情况,因此不< em>必然抛出预期的异常。
提供上述文档是一种掩盖自己的方法,并解释一个简单的想法,如果你不了解它,或者理解它,之前错误的线程,实际上需要付出很多努力才能解决违规代码会引发异常,这可能会在以后发生。
答案 1 :(得分:0)
这里的主要问题是检查调用给定函数的线程会产生处理开销;几乎可以肯定的是,调用不会检查这个原因 - 它会减慢UI渲染速度。
通过扩展,UI函数不是线程安全的原因是,如果您通过互斥代码进入等式,性能命中率会变得更高。