В iOS env, возможно ли сделать текущий поток спящим в течение нескольких секунд, а затем выполнить мой код? NSTimer, GDC или любая техника в порядке для меня.iOS: Как сделать нить сна в течение нескольких секунд?
ответ
Было бы лучше, если бы вы поделились тем, что вы сделали, но здесь вы идете.
Есть несколько вариантов, вы можете пойти с:
Вариант 1
// Standard Unix calls
sleep();
usleep();
Некоторая документация относительно функции sleep
можно найти here. Вы обнаружите, что они фактически являются функциями C
, но с Objective-C
является строгим надмножеством C, мы все еще можем использовать функции sleep
и usleep
.
Вариант 2
[NSThread sleepForTimeInterval:2.000];//2 seconds
Apple documentation для этого метода состояний:
Спит нить для заданного временного интервала.
Обсуждение обработка петли
Нет запуска происходит в то время как поток блокируется.
Вариант 3
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,
1 * NSEC_PER_SEC),
dispatch_get_main_queue(),
^{
// Do whatever you want here.
});
Grand Central Dispatch
маршрут очень хороший способ делать вещи. Вот документация Apple для Grand Central Dispatch, которая довольно хорошо читается.
Существует также этот вопрос, который может быть очень полезным How to Wait in Objective-C
Я считаю, что метод dispatch_after - это то, что я хочу. Благодарю. –
Вариант 2 останавливает систему –
Есть ли какое-либо требование на SO, чтобы «отправить свой код»? – NSTJ
не может быть проще.
sleep(seconds);
Спасибо за комментарий, Похоже, что API уровня системы останавливает текущий поток. Во всяком случае, это работает для моей ситуации. –
Почему бы и нет? Если ответ действительно прост, я не знаю ... что вы ожидаете? –
Либо
[self performSelector:@selector(YourFunctionName) withObject:(can be Self or Object from other Classes) afterDelay:(Time Of Delay)];`
или
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC),
dispatch_get_main_queue(), ^{
//your method
});
Используйте метод класса + (void)sleepForTimeInterval:(NSTimeInterval)ti
Переменная NSTimeInterval имеет тип двойной и представляет количество секунд спать
// Block for .5 seconds
[NSThread sleepForTimeInterval:.5];
Swift 4.0: Thread.sleep (forTimeInterval: 0.5) –
это зависит от того, как вы создаете (нерест) свои темы. Например, если вы создаете свою нить с NSThread
класса, вы можете использовать два метода класса:
sleepUntilDate:
sleepForTimeInterval:
Но в целом это плохая идея, чтобы справиться управлении РЕЗЬБОНАРЕЗАНИЕ себя, потому что многопоточного программирования очень трудно. Например, вы можете использовать GCD или операционные очереди для обработки многопоточности в своем приложении.
- 1. Perl: Сделать нить сна
- 2. Основная тема iOS замораживается в течение нескольких секунд
- 3. Отменить нить сна на Linux
- 4. сделать куб скрытым в течение нескольких секунд и отобразить его снова в течение секунд.
- 5. Сделайте «матрицу» Run в течение нескольких секунд?
- 6. libGDX пауза работает в течение нескольких секунд
- 7. Нить без сна
- 8. Как приостановить GameObject в течение нескольких секунд и сделать паузу через пару секунд в единстве3d
- 9. Удерживайте метод UIPickerViewDelegate в течение нескольких секунд
- 10. Скрыть кнопку в течение нескольких секунд onclick
- 11. Delay Javascript функции в течение нескольких секунд
- 12. Blink imageView в течение нескольких секунд
- 13. C# Показать TextBox в течение нескольких секунд
- 14. Сон слой в течение нескольких секунд в cocos2dx
- 15. Спуск SwingWorker нить сна
- 16. Создание UIImagePickerController зависает в течение нескольких секунд
- 17. Клавиатура зависает в течение нескольких секунд
- 18. Учетная запись в течение нескольких секунд
- 19. выделить цвет рамки в течение нескольких секунд?
- 20. Показать диалоговое окно в течение нескольких секунд
- 21. Подключения Mysql в течение нескольких секунд
- 22. NSOpenPanel замораживает приложение в течение нескольких секунд
- 23. время сна в течение цикла
- 24. сна() завершает нить в WindRiver
- 25. Как выполнить какое-либо действие в течение нескольких секунд?
- 26. Как сделать функцию пробег для конкретных секунд без сна
- 27. Как показать изображение в течение нескольких секунд в QML?
- 28. Как заблокировать пользовательский интерфейс в течение нескольких секунд в Android?
- 29. Как сделать программу для сна, пока моя нить не закончится?
- 30. Как сделать maven выполнение сна
Что вы пробовали? Пожалуйста, поделитесь кодом, который вы уже пробовали. Также вы попробовали что-то простое, как 'sleep (2);' или '[NSThread sleepForTimeInterval: 2000]'? – Popeye
Что вам нужно для достижения? –
@flexaddicted Я не вижу в нем прямого дубликата * этого *. Судя по тегам, используемым ** Opart Code **, он, похоже, никак не ссылается на Java. Возможно, он даже не знает Java, и не стал бы искать эту информацию таким образом. Но, конечно, дублируйте это, есть куча вопросов вроде этого на SO ... – Michal