Функция sleep_for
Функция sleep_for приостанавливает выполнение
текущего потока на заданный промежуток времени.
Она находится в пространстве имён std::this_thread
и принимает один параметр - длительность задержки,
заданную в виде объекта std::chrono::duration.
Функция не возвращает никакого значения и не
гарантирует точную задержку, так как операционная
система может продолжить выполнение потока немного
позже указанного времени.
Синтаксис
this_thread::sleep_for(duration)
Пример
Давайте приостановим выполнение программы на
2 секунды, а затем выведем сообщение:
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
int main()
{
cout << "Start" << endl;
this_thread::sleep_for(chrono::seconds(2));
cout << "End" << endl;
return 0;
}
Результат выполнения кода:
"Start"
"End"
Пример
Давайте приостановим выполнение программы на
500 миллисекунд, используя длительность
в миллисекундах:
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
int main()
{
cout << "Before" << endl;
this_thread::sleep_for(chrono::milliseconds(500));
cout << "After" << endl;
return 0;
}
Результат выполнения кода:
"Before"
"After"
Пример
Давайте приостановим выполнение программы на
1 секунду и 500 миллисекунд,
скомбинировав длительности:
#include <iostream>
#include <thread>
#include <chrono>
using namespace std;
int main()
{
cout << "Start" << endl;
this_thread::sleep_for(chrono::seconds(1) + chrono::milliseconds(500));
cout << "End" << endl;
return 0;
}
Результат выполнения кода:
"Start"
"End"
Смотрите также
-
функция
sleep_until,
которая приостанавливает поток до заданного момента времени -
класс
steady_clock,
который представляет монотонные часы для измерения интервалов -
метод
now,
который возвращает текущий момент времени -
класс
time_point,
который представляет точку во времени