Безопасен ли поток UIGraphicsBeginImageContext?

Итак, у меня сложилось впечатление, что UIGraphicsBeginImageContext является потокобезопасным и может быть вызван из любого потока для создания нового CGContextRef, который можно использовать для рисования.

Однако текущий documentation утверждает, что

"You should call this function from the main thread of your application only."

Однако в видеоролике WWDC 2012 "Создание параллельных пользовательских интерфейсов" говорящий показывает, что вы действительно можете рисовать в фоновом режиме и вызывать этот метод в фоновом режиме:

enter image description here

enter image description here

enter image description here

Итак, как вы можете видеть, он добавляет операцию в _queue (которая работает в потоке BG), которая вызывает renderedGraphOfSize, которая вызывает UIGraphicsBeginImageContext. Так что же сделка? Я получаю некоторые сбои в моем приложении, когда дело доходит до рисования в фоновом режиме, поэтому я не знаю, почему запутались примеры из Apple.

Ответ 1

UIGraphicsBeginImageContext определенно потокобезопасен в iOS 4 и более поздних версиях. Видеозапись сеанса WWDC 2012 относится к iOS 6, поэтому, возможно, вам также следует относиться к документации iOS 6:)