Нет, не работает. Вы наверное совсем не представляете что такое многопоточность и с чем ее едят.
Работает в один поток, по этому если накидаете туда чего нибудь тяжеловесного, то приложение повиснет. "Врубить во все" никак нельзя, нужно самому создавать и управлять потоками.
Как показало гугление в iOS есть Grand Central Dispatch который облегчает задачу. По русски документации для swift вы наверное не найдете, ибо еще все молодое, но вот для object-c
idev.by/ios/21112
В вашем случает выглядит все примерно так. Главный поток делает dispatch_async, там что-то делает тяжеловесное и периодически оттуда dispatch_async -ом обновляется прогресс-бар.