2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Задержка в с++
Сообщение14.07.2010, 15:15 
venco в сообщении #339102 писал(а):
на худой конец, select().

Вообще-то, select - самый лучший вариант для точных задержек:
Код:
man select
...
int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
...
ЗАМЕЧАНИЕ
       В некоторых программах select вызывается с тремя пустыми наборами файлов, n равным нулю, и ненулевым значением timeout, что является довольно переносимым способом сделать задержку с миллисекундной точностью.

 
 
 
 Re: Задержка в с++
Сообщение15.07.2010, 18:23 
Circiter в сообщении #339100 писал(а):
2Unmanner
Наверное, лучше делать примерно так (оставаясь в рамках стандарта языка):

У вас будет 100% загрузка ядра в этом случае.
Вообще есть функция nanosleep, хотя ее разрешение существенно зависит от операционной системы.

Если же нужно сделать платформо-независимо и задрежки менее миллисекунды не нужны, то я бы использовал таймер из boost::asio.

 
 
 
 Re: Задержка в с++
Сообщение16.07.2010, 02:12 
Эх... Может быть глянуть в сторону Boost.Date_Time?

Кстати, наверное портабельные задержки все-таки появились в C++0x, не знает кто случаем?

 
 
 
 Re: Задержка в с++
Сообщение16.07.2010, 03:33 
Circiter в сообщении #339455 писал(а):
Эх... Может быть глянуть в сторону Boost.Date_Time?

В нем нет задержек. Там всякие преобразования и представления даты/времени и тому подобное. А вот deadline_timer из asio как раз и делает что требуется: просыпается в заданное время/через заданный промежуток и вызывает переданный в качестве параметра callback.

 
 
 [ Сообщений: 19 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group