Czy ten wątek kodu Core Graphics jest bezpieczny?

Wiem, że bezpiecznie jest rysować na dowolnym wątku tak długo, jak dzwonię

UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
UIGraphicsEndImageContext();

w tym samym wątku.

Wykonanie zrzutu ekranu za pomocą tej metody trwa około 300 ms, co nie jest złe, ale jestem w trudnej sytuacji, więc chcę to zrobić w wątku w tle.

Oto co robię:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
        [view.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage * screenshot = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    });

Jedyne, o co tu chodzi, toview, który leży na głównym wątku. Czy można bezpiecznie zadzwonić?renderInContext naview.layer z wątku w tle? Czy generalnie jest to bezpieczne tylko do odczytu obiektu UIKit z innego wątku?

(I proszę, nie podawaj mi domyślnej odpowiedzi „UIKit nie jest bezpieczny dla wątków”. Już to wiem. To jest szczególny przypadek (i nie mów mi, że nie ma specjalnych przypadków).)

(powyższy kod działa dobrze, ale nie jestem pewien, czy to tylko zbieg okoliczności.)

questionAnswers(1)

yourAnswerToTheQuestion