为什么在主线程上绘制UI?

时间:2012-06-08 11:35:15

标签: objective-c ios macos

是否有理由在主线程上完成所有UIKit绘图或AppKit绘图?

2 个答案:

答案 0 :(得分:5)

这是在单个线程上完成的所有GUI绘图的主要模式, 访问用于添加元素和绘图的屏幕不是多线程进程

想象一下你有10个线程的情况,每个线程都试图在屏幕上绘制和/或移动元素,这会产生非确定性错误和难以处理和/或查找的问题

另请参阅此处Why are most UI frameworks single threaded?

答案 1 :(得分:2)

“因为多线程绘图很快变得太复杂/混乱”只是答案的一半。

多线程UI管理的另一个主要障碍是事件处理。具体而言,将事件处理混合到并行绘图中。你不得不以某种方式将绘图混合在屏幕/键盘/鼠标上的混乱中,同时有效地维护了事务完整性的概念。

如果没有并发性,这已经很难了。