Я работаю с потоками, и иногда мне нужно остановить один поток, ожидая завершения другого. Иногда я использую семафор, чтобы предотвратить возврат функции в другом потоке до ее завершения (например, ожидание выключения камеры устройства). Проблема в том, что иногда функция вызывается в главном потоке, и она блокирует приложение, пока не вернется. В этом случае я мог бы использовать цикл while, который вызывает sleep (), чтобы не показывать пользователю «вращающийся пляжный мяч». Есть ли лучшее решение для этого, которое предотвратит пляжный мяч?