2010-05-30 40 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,然後在完成後通知主線程並更新屏幕。