Как сказал носорог, наиболее вероятно, что вы хотите использовать таймеры.
Если это консольное приложение, то задержки в стиле sleep () могут быть приемлемыми.
Однако,большинство приложений в настоящее время являются приложениями с графическим интерфейсом, и для них вам НЕ нужно блокировать процесс, сидящий на вызове sleep ().
Что вам нужно сделать, так это настроить таймер и таймерОбработчик событий вы выполняете один проход вашего действия.Когда последний проход сделан, отключите таймер.Это позволяет циклу событий графического интерфейса пользователя продолжать обработку событий и предотвращает блокировку приложения во время сна.
Если вам нужна лучшая точность времени, вы также можете запустить метод sleep () на рабочем месте.нить.Тем не менее, вы не получите точность времени лучше, чем 10-50 мс (потенциально намного хуже) с любым нормальным методом.Это должно быть прекрасно для большинства применений.
Если вам нужно хорошее совокупное отслеживание времени (скажем, вы рисуете стрелки на часах), вы должны получить текущее системное время внутри своего таймера или рабочего потока и использовать это число, чтобы отрегулировать, как долго вы ждетеследующий проходВ противном случае, поскольку таймеры (и sleep ()) будут срабатывать «как можно скорее после завершения времени таймера / сна», вы будете медленно добавлять эти дополнительные задержки и работать медленнее, чем вы предполагали.Пример: sleep (1000) может спать в течение 1000 мс, или, более вероятно, что-то вроде 1005, 1015, 1021 и т. Д. Таймеры будут вести себя аналогично.
Есть много способов сделать таймеры (Win32, Qt, boost,и т. д.) и столь же большое количество способов управления потоками.Поэтому нам нужно больше узнать о том, с какой платформой вы работаете, чтобы ответить дальше.