Я пытаюсь выполнить синхронизацию между основным потоком и потоком, в котором отображается CALayer
. Один простой подход - использовать NSLock
, но я хотел бы воспользоваться преимуществами GCD-очередей.
Есть ли способ создать DispatchQueue
и связать его с заданным потоком?
Насколько я понимаю, должна быть возможность создать новый DispatchQueue
(не связанный ни с чем) и использовать .async
в одном потоке, в то время как вызов .sync
в той же очереди в другом потоке, который должен обеспечить безопасный обмен между потоками. Например, основной поток хочет передать некоторые данные в поток CALayer
: он записывает данные в своем блоке .async
, тогда как слой считывает данные в блоке .sync
. Но это кажется излишним, я не уверен, что это будет наиболее эффективно.