我的 Mac OSX 应用程序有一个后台进程,它使用 Core Graphics 将 2D 线条和区域绘制到CGLayer
. 然后通过子类的displayRect()
方法定期向用户显示NSView
。
目前我正在使用 GCD 队列来序列化读取和写入层的任务。这确保了后台进程永远不会在主线程使用CGContextDrawLayerAtPoint()
. 但是,这会花费我一些性能。
问题1: R/W访问的序列化CGLayer
对于应用程序的稳定性是否必要?(我不介意奇怪的错误显示图像,但我不想冒险崩溃)。
问题 2:如果我要将绘图任务拆分为多个并发进程,让它们同时写入图层是否安全,或者我是否需要将它们序列化(这会使并发变得毫无意义) ?