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