是否有任何howtos?我如何使用Cocoa/CoreText/Quartz进行多线程绘图
背景画线的最佳做法是什么?
可以将[NSView drawRect]中的矩形数据存储到队列中并让后台线程获取矩形并创建一些位图并将数据呈现到位图中,然后使用performSelectorOnMainThread:withObject来绘制它?或者我可以直接从背景画出一个背景。
我从Bunny Laden买了一本书“Programming with Quartz 2D”,但还没有读过它,书中没有提到多线程的提示。在正常的Apple API参考页面中也找不到任何东西。
嗯,我喜欢posix pthreads所有同步的东西。但我的问题是如果NSFont,NSColor,NSImage或石英对应物都是线程安全的 - 至少当我保证我的代码一次只从一个线程调用一个对象时。如果可能将对象从一个线程传递到另一个线程,那么它们不能使用全局变量或线程局部变量。 – Lothar 2010-08-27 10:37:29
线程安全意味着您不必保证一次只能使用一个线程。如果你能保证那么问题就解决了。一些gui类必须在主线程中使用 - 这与线程安全无关 - 这是因为runloops,notificatons等。 NSImage可能属于这一类。坚持石英和coretext。 – hooleyhoop 2010-08-28 07:38:07