从后台线程更新 UI 是一种不好的做法,为啥? [关闭]

Posted

技术标签:

【中文标题】从后台线程更新 UI 是一种不好的做法,为啥? [关闭]【英文标题】:Updating UI from a background thread is a bad practice why? [closed]从后台线程更新 UI 是一种不好的做法,为什么? [关闭] 【发布时间】:2022-01-22 17:03:24 【问题描述】:

我的教授在课堂上告诉我们,从后台任务更新 UI 元素是一种不好的做法,因为它可能会挂起我们的 UI,我不明白为什么,请有人详细说明

【问题讨论】:

【参考方案1】:

后台线程不知道您的 ui 状态,简单来说,他们不知道您的 ui 是否仍然存在,在这种情况下,如果您尝试从后台线程更新您的 ui,并且如果您的 ui 元素有任何机会那时不存在,您的应用会出现异常(意外行为)或崩溃。

所以为了避免这种意外行为,我们只从主/ui线程更新ui。

【讨论】:

以上是关于从后台线程更新 UI 是一种不好的做法,为啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥直接从 Servlet 访问 DAO 是一种不好的做法?

为啥单身人士被认为是一种不好的做法? [复制]

为啥使用“评估”是一种不好的做法?

为啥向下转换在 C++ 中是一种不好的做法,而不是在另一种语言中呢? [关闭]

指向 std::thread 的共享指针是一种不好的做法吗?

一种WPF在后台线程更新UI界面的简便方法