从 iOS 的后台线程更新 UI
Updating UI From a background thread on iOS
在 iOS 上,有据可查的是 UI 永远不应从后台线程更新。相反,主线程应该是更新 UI 的唯一接口。我的问题是为什么?
是否因为UI控件不是线程安全的,因此总有可能主线程更新特定控件,同时在后台线程中修改它?我的理解对吗?
谢谢
我认为它与保持 UI 响应有更多关系,所以 iOS 只是阻止您将 UI 内容放在非主线程中。
你知道你可以在后台线程中使用 dispatch_async(dispatch_get_main_queue(), ) { //change UI here }
将你的 UI 操作发送到主线程。
在 iOS 上,有据可查的是 UI 永远不应从后台线程更新。相反,主线程应该是更新 UI 的唯一接口。我的问题是为什么?
是否因为UI控件不是线程安全的,因此总有可能主线程更新特定控件,同时在后台线程中修改它?我的理解对吗?
谢谢
我认为它与保持 UI 响应有更多关系,所以 iOS 只是阻止您将 UI 内容放在非主线程中。
你知道你可以在后台线程中使用 dispatch_async(dispatch_get_main_queue(), ) { //change UI here }
将你的 UI 操作发送到主线程。