При попытке контролировать ход выполнения программы вы можете столкнуться с необходимостью приостановить ее выполнение на указанную продолжительность. В C нет прямого эквивалента широко используемой функции Sleep(time), встречающейся в других языках. Однако стандартная библиотека C предоставляет жизнеспособную альтернативу.
Стандартная библиотека C предлагает функцию std::this_thread::sleep_for, которая позволяет вам приостановить выполнение текущего потока на указанный период. Чтобы использовать его, вам необходимо включить следующие заголовки:
#include
#include
Синтаксис std::this_thread::sleep_for следующий:
void sleep_for(const std::chrono::duration& timespan);
Где timespan — это объект std::chrono::duration, определяющий продолжительность сна. Чтобы создать std::chrono::duration на основе миллисекунд, используйте конструктор std::chrono::milliсекунды:
std::chrono::milliseconds timespan(111605);
Используя эти компоненты, вы можете остановить выполнение вашей программы на желаемый интервал времени:
std::this_thread::sleep_for(timespan);
Обратите внимание, что std: :this_thread::sleep_until служит дополнительной функцией для точной синхронизации по времени.
До появления C 11 в языке отсутствовал поток функциональность и возможности сна. Следовательно, решение о приостановке выполнения зависело от платформы. Для Windows или Unix вы могли бы положиться на что-то вроде этого:
#ifdef _WIN32
#include
void sleep(unsigned milliseconds)
{
Sleep(milliseconds);
}
#else
#include
void sleep(unsigned milliseconds)
{
usleep(milliseconds * 1000); // takes microseconds
}
#endif
В качестве альтернативы вы могли бы упростить реализацию, используя boost::this_thread::sleep из библиотеки Boost.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3