FreeBasic
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Способы формирования задержек

Участников: 4

Перейти вниз

Способы формирования задержек Empty Способы формирования задержек

Сообщение  workman Сб Янв 08, 2011 12:42 pm

Какие есть способы формирования задержек выполнения программы (микросекундных, миллисекундных)?

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  trew Сб Янв 08, 2011 1:23 pm

Функция Sleep(Nms,flag)

nms -кол-во миллисекунд
flag - если 1, то нельзя прервать клавишей

Если без параметров, то ждет нажатие клавиши

Код:
Print "111"
Sleep(1000,1)
Print "222"
Sleep(1000,1)
Print "Down Esp"
sleep

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  workman Сб Янв 08, 2011 2:46 pm

Спасибо, про это я в курсе, думал может еще какие способы есть. Как быть если нужны микросекундные задержки?

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  trew Сб Янв 08, 2011 3:17 pm

Вот здесь посмотри:
http://www.progz.ru/t7971/

я думаю ты найдешь ответ на свой вопрос.

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  workman Сб Янв 08, 2011 4:16 pm

Да, спасибо, многое прояснилось

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  workman Ср Апр 06, 2011 1:13 pm

А если для формирования минимальной задержки использовать команду(ы) "nop" (нет операции) ?

workman

Сообщения : 25
Дата регистрации : 2010-12-03

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  trew Ср Апр 06, 2011 4:47 pm

workman пишет:А если для формирования минимальной задержки использовать команду(ы) "nop" (нет операции) ?

Все компьютеры разной конфигурации, если что-то у тебя будет на данный момент работать правильно, на другой машине будет работать быстрее или медленнее. Я не вижу смысла от таких задержек, все равно все упирается в операционную систему, и то как она в этот момент обработает сообщения. Попробуй запустить простой код несколько раз и ты увидишь даже здесь разницу:
Код:
Dim Start As Double:Dim a As double
Start = Timer

Do
  a=a+1
Loop Until a>100000000
? (Timer - Start)
sleep


Последний раз редактировалось: trew (Чт Апр 07, 2011 5:25 am), всего редактировалось 1 раз(а)

trew

Сообщения : 331
Дата регистрации : 2010-10-14

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  AWPStar Ср Апр 06, 2011 11:04 pm

Понятно, что вычислительные мощности разные.
Но команды типа Sleep делают одинаковую задержку везде

AWPStar

Сообщения : 6
Дата регистрации : 2011-04-05

Вернуться к началу Перейти вниз

Способы формирования задержек Empty Re: Способы формирования задержек

Сообщение  DiG. GeRR Чт Апр 07, 2011 9:42 am

Sleep тоже не гарантирует, что задержка будет в точности соответсвовать переданному параметру. Так как Windows не ОС реального времени, то система оставляет за собой право передать управление потоку в любое время. Sleep только лишь указывает планировщику, что указанное количество миллисекунд поток не учавствует в "розыгрыше" процессорного времени. Создавать же каким-либо образом микросекундные задержки (да и вообще задержки меньше порядка 10 мс) не имеет смысла.

DiG. GeRR

Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 32
Откуда : Рудный, Казахстан

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения