Я нашел функцию usleep в unistd.h, и я подумал, что было полезно подождать некоторое время перед каждым действием. Но я обнаружил, что поток просто спит, если он не получает никакого сигнала Например, если я нажму кнопку (я использую OpenGL, но вопрос более конкретный о time.h и unistd.h), поток пробуждается, и я не получаю то, что хочу. В time.h есть функция sleep, которая принимает целое число, но целое число слишком велико (я хочу подождать 0,3 секунды), поэтому я использую usleep. Я спрашиваю, есть ли функция, требующая времени в миллисекундах (из любой GNU или любой другой библиотеки). Он должен работать как time(), но возвращает миллисекунды вместо секунд. Возможно ли это?Время в миллисекундах
ответ
Это функция кросс-платформенный я использую:
unsigned Util::getTickCount()
{
#ifdef WINDOWS
return GetTickCount();
#else
struct timeval tv;
gettimeofday(&tv, 0);
return unsigned((tv.tv_sec * 1000) + (tv.tv_usec/1000));
#endif
}
Мне нужна функция, подобная time(), но которая получает ms. –
@RamyAlZuhouri: Хорошо, я отредактировал свой ответ. – trojanfoe
Если у вас есть импульс вы можете сделать это следующим образом:
#include <boost/thread.hpp>
int main()
{
boost::this_thread::sleep(boost::posix_time::millisec(2000));
return 0;
}
Этот простой пример, как вы можете видеть в коде , спит на 2000 мс.
Edit:
Хорошо, я думал, что я понял вопрос, но потом я прочитал комментарии, и теперь я не так уверен.
Возможно, вы хотите получить, сколько миллисекунд прошло с какого-то момента/события? Если это так, то вы могли бы сделать что-то вроде:
#include <boost/chrono.hpp>
#include <boost/thread.hpp>
#include <iostream>
int main()
{
boost::chrono::high_resolution_clock::time_point start = boost::chrono::high_resolution_clock::now();
boost::this_thread::sleep(boost::posix_time::millisec(2000));
boost::chrono::milliseconds ms = boost::chrono::duration_cast<boost::chrono::milliseconds> (boost::chrono::high_resolution_clock::now() - start);
std::cout << "2000ms sleep took " << ms.count() << "ms " << "\n";
return 0;
}
(Пожалуйста, простите длинные линии)
- 1. Время в миллисекундах Тревога
- 2. Время вычитания в миллисекундах
- 3. Текущее время в миллисекундах
- 4. Захватив время в миллисекундах
- 5. Время в миллисекундах без bc
- 6. Преобразовать в миллисекундах отформатированный время
- 7. Как получить время в миллисекундах?
- 8. Wireshark: Показывать время в миллисекундах?
- 9. C++ время работы в миллисекундах
- 10. Относительно получать время в миллисекундах
- 11. Преобразовать отформатирован время Utc миллисекундах
- 12. C++ и время с миллисекундах
- 13. Текущее время в миллисекундах в MYSQL
- 14. Дата и время в миллисекундах в Android
- 15. Получить текущее время, в миллисекундах, в C?
- 16. Как преобразовать время в миллисекундах в php
- 17. Получить системное время в миллисекундах в android
- 18. JavaScript regexp обрабатывает дату/время в миллисекундах
- 19. Время в миллисекундах для чтения блока байтов
- 20. Время построения в миллисекундах - JFreeChart (Step Chart)
- 21. Получите время в миллисекундах, используя C#
- 22. Как получить время, прошедшее в миллисекундах
- 23. Как получить время по Гринвичу в миллисекундах
- 24. moment.js получает текущее время в миллисекундах?
- 25. момент не правильно разборе время в миллисекундах
- 26. Как получить время видео в миллисекундах
- 27. Получить как дату и время в миллисекундах
- 28. Найдите время в миллисекундах, используя Powershell?
- 29. C++ получить время в миллисекундах, кросс-платформенный
- 30. Как получить текущее время в миллисекундах?
Можете ли вы быть более четкое представление о том, чего не нравится 'usleep'? Насколько я могу судить, он делает именно то, что вы хотите (ну, за исключением μs вместо ms). –
У меня вопрос не возникает. Разве это не 'microtime', что вы ищете? – nothrow
Проблема в том, что мне не нужна функция сна, но функция «getTime in ms». Если поток спит, его можно разбудить некоторым сигналом (например: нажмите клавишу). –