Каков наилучший способ синхронизации потоков между CALayer.draw и основным потоком? - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь выполнить синхронизацию между основным потоком и потоком, в котором отображается CALayer. Один простой подход - использовать NSLock, но я хотел бы воспользоваться преимуществами GCD-очередей.

Есть ли способ создать DispatchQueue и связать его с заданным потоком?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...