Как добавить временную задержку в программу на C ++? - PullRequest
62 голосов
/ 01 октября 2008

Я пытаюсь добавить временную задержку в программе на C ++, и мне было интересно, есть ли у кого-нибудь какие-либо предложения относительно того, что я могу попробовать или какую информацию я могу посмотреть?

Хотелось бы, чтобы у меня было больше деталей о том, как я реализую эту временную задержку, но пока у меня нет больше информации о том, как добавить временную задержку, я не уверен, как мне следует пытаться реализовать это.

Ответы [ 13 ]

0 голосов
/ 02 октября 2008

В Windows вы можете включить библиотеку Windows и использовать «Sleep (0);» спать программу. Это принимает значение, которое представляет миллисекунды.

0 голосов
/ 02 октября 2008

Многие другие предоставили хорошую информацию для сна. Я согласен с Клин, что сон редко является наиболее подходящим решением.

Если вы спите, ожидая чего-то, то вам лучше подождать эту вещь / событие. Посмотрите на переменные условия для этого.

Я не знаю, на какой ОС вы пытаетесь это сделать, но для потоков и синхронизации вы можете обратиться к Boost Threading библиотекам ( Boost Condition Varriable ).

Переходя теперь к другой крайности, если вы пытаетесь ждать исключительно коротких периодов, есть несколько вариантов стиля хака. Если вы работаете на какой-то встроенной платформе, где «спящий» не реализован, вы можете попробовать простой цикл (для / в то время и т. Д.) С пустым телом (будьте осторожны, компилятор не оптимизирует его). Конечно, время ожидания зависит от конкретного оборудования в этом случае. Для действительно коротких «ожиданий» вы можете попробовать сборку «nop». Я очень сомневаюсь, что это то, что вам нужно, но не зная, почему вам нужно ждать, трудно быть более конкретным.

0 голосов
/ 01 октября 2008

Синтаксис:

недействительный сон (без знака секунды);

sleep () приостанавливает выполнение на некоторый интервал (секунды). При обращении к режиму ожидания текущая программа приостанавливается на выполнение на количество секунд, указанное в аргументе секунд. Интервал является точным только с точностью до одной сотой секунды или с точностью тактовой частоты операционной системы, в зависимости от того, что меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...