Im пишущий быстрый скрипт, который будет запущен в терминале, который отправляет в фоновый поток пару операций. Без каких-либо дополнительных усилий, после завершения моей отправки, код доходит до конца файла и завершает работу, также убивая мои фоновые операции. Каков наилучший способ сохранить быстрый скрипт до тех пор, пока мои фоновые операции не будут завершены?Ожидание асинхронных вызовов быстрым скриптом
Лучшее, что я придумал, это следующее, но я не верю, что это лучший способ или даже правильный.
var semaphores = [dispatch_semaphore_t]()
while x {
var semaphore = dispatch_semaphore_create(0)
semaphores.append(semaphore)
dispatch_background {
//do lengthy operation
dispatch_semaphore_signal(semaphore)
}
}
for semaphore in semaphores {
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER)
}
Возможный дубликат [Несколько работников в Swift Command Line Tool] (http://stackoverflow.com/questions/28590701/multiple-workers-in-swift-command-line-tool) –