我的Mac OSX應用程序有一個後臺進程,它使用Core Graphics將2D線和區域繪製到CGLayer
中。然後通過NSView
子類的displayRect()
方法定期向用戶顯示。是否需要將讀取/寫入訪問序列化到OSX中的CGLayer?
目前我正在使用GCD隊列來串行化讀取和寫入圖層的任務。這確保後臺進程不會在主線程使用CGContextDrawLayerAtPoint()
將其繪製到視圖中的同時進行繪製。不過,這會讓我有些表現。
問題1: R/W的序列化訪問CGLayer
是否需要穩定的應用程序? (我不介意奇怪的錯誤顯示的圖像,但我不想冒險崩潰)。
問題2:如果我的繪圖任務分割成幾個併發進程,這將是安全的,讓他們全部寫入層在同一時間或我需要連載他們(這將使沒有意義的併發類)?