2010-05-30 42 views
0

该参考文件说: “您应该只从应用程序的主线程调用此函数。”
但我想从单独的线程获取当前的图形上下文。你怎么看?我能做些什么来达到这个目的?UIGraphicsGetCurrentContext线程问题


编辑: 谢谢你们的答案。目前我不知道这对我有好处,但非常感谢。

回答

1

如果要从其他线程绘制,请创建自己的CGBitmapContext或使用CATiledLayer。

+0

这是正确的答案。创建您自己的CGBitmapContext。有关示例,请参阅Quartz绘图指南。 – orange 2010-05-31 21:00:40

+0

CGBitmapContext也不错,但CATiledLayer对我更好。 :) 另外,我会建议其他人想与pdfs一起工作与CATiledLayer。 – 2010-06-01 10:41:20

0

我会说重构你的逻辑,以符合参考的建议。

一般而言,关于你应该做和不应该做的事情是准确的。

为什么你想从不同的线程访问它?

+0

我想使用线程在3或6个不同的视图中绘制PDF文档。那么你能否以另一种方式建议我?我不想先创建UIImages,然后将它们添加到视图中。有没有什么好的解决方案? – 2010-05-30 20:49:25

3

切勿从主线程以外的任何东西画到屏幕上!图形芯片是单线程的,所以如果你不遵循这个规则,你可能会导致各种竞争条件。

您可以绘制到背景NSImage,然后在完成后通知主线程并更新屏幕。