有没有怎样的声音?
此处背景线程绘制的最佳做法是什么。
是否可以将[NSView drawRect]中的矩形数据存储在队列中,然后让后台线程获取矩形并创建一些位图并将数据渲染到位图中,然后使用performSelectorOnMainThread:withObject来绘制它?或者我可以直接从背景中绘制一个上下文。
我从Bunny Laden那里购买了“Programming with Quartz 2D”这本书,但尚未阅读,书中没有关于多线程的提示。在普通的Apple API参考页面中也找不到任何内容。
答案 0 :(得分:1)
是的,可以将[NSView drawRect]中的矩形数据存储在队列中,然后让后台线程获取矩形并创建一些位图并将数据渲染到位图中,然后使用performSelectorOnMainThread:withObject来绘制它。
只要您以线程安全的方式执行此操作。
这与绘图无关,所以没有理由在“使用Quartz 2D编程”中提及它(顺便说一下这本书很棒 - 你绝对应该阅读它)。你可能想要一本关于多线程的配套书。
请考虑问题的第一部分。你如何将rect存储在队列中?将它添加到NSMutableArray?不是线程安全的。
Grand Central Dispatch将提供很多帮助(您没有提到您希望支持的平台)。