IOS 多线程与UI

为什么与UI相关的操作要在主线程里面执行?这里面的原理是什么?有相关文档推荐吗?

阅读 7.5k
2 个回答

基本上所有的UI实现都没有对多线程支持,再加上大多数UI都跑主线,所以就这个样子。
另外,很多UI库都是基于消息循环实现的,一般都是one loop per thread的模式。

这跟IOS无关,是个一般性的实现. 现存几乎所有操作系统都是只用一个线程绘制UI.是操作系统的事情.事实上在C#(.NET WinForm,WPF,Mono,SilverLight)或者在C++(MFC等)或者其他几乎所有的UI实现里, 都是由主线程处理UI的.
当后台线程需要更新UI时需要Invoke到主线程来更新.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进