@Lici

Работает ли в Swift многопоточность из коробки?

Делаю программу простую на swift в xcode под os x, но для себя полезную, чтоб лопатила много данных. Как узнать работает она в один поток или во все ядра core i5? Если в один - как врубить во все?

И еще момент. Если запускается большое действие то программа может просто какое-то время "дуплить" и потом только показать результат. Можно как-то навесить прогресс-бар в пару движений?
  • Вопрос задан
  • 2065 просмотров
Решения вопроса 1
ManWithBear
@ManWithBear
Swift Adept, Prague
Асинхронность на свифте ---> КЛИК!
NSProgressIndicator
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
rdifb0
@rdifb0
Программист, реалист
Нет, не работает. Вы наверное совсем не представляете что такое многопоточность и с чем ее едят.
Работает в один поток, по этому если накидаете туда чего нибудь тяжеловесного, то приложение повиснет. "Врубить во все" никак нельзя, нужно самому создавать и управлять потоками.
Как показало гугление в iOS есть Grand Central Dispatch который облегчает задачу. По русски документации для swift вы наверное не найдете, ибо еще все молодое, но вот для object-c idev.by/ios/21112
В вашем случает выглядит все примерно так. Главный поток делает dispatch_async, там что-то делает тяжеловесное и периодически оттуда dispatch_async -ом обновляется прогресс-бар.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы