|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.04.2012, 12:41 | #1 |
Пользователь
Регистрация: 22.05.2011
Сообщений: 44
|
Как работает Sleep(x)?
В асм это прерывание 15h в ah 86h, в dx:cx кол-во миллисекунд.
Есть такая процедура в Borland Си: Sleep(x), как она работает? |
19.04.2012, 12:50 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
это функция WinAPI судя по всему.
вообще переключение потоков идет не реже чем тики системного таймера(поидее). а так просто диспетчер потоков смотрит истекло время ожидания или нет, если не то не дает потоку квантов и все. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
19.04.2012, 13:10 | #3 |
Пользователь
Регистрация: 22.05.2011
Сообщений: 44
|
А можно поподробней на ассемблере?
Там ведь должна быть переменная, которая хранит кол-во миллисекунд. Как декрементится эта переменная? Там в цикле должен опрашиваться таймер, например тот, что у меня, работает на частоте 1193180, и максимальное число в регистре 65536, т.е. он выдает сигнал о переполнении таймера 18.2 раза в секунд 1193180/65536 (т.е. интервалы между прерываниями от таймера = 55 мсек.) Как реализованна задержка в Sleep(x), например, для 10 мсек? Заранее спасибо. Последний раз редактировалось Glaciuse; 19.04.2012 в 13:16. |
19.04.2012, 16:24 | #4 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
http://frolov-lib.ru/books/bsp/v02/ch5_3.htm - читаем, просвещаемся..
Правильно поставленная задача - три четверти решения.
|
19.04.2012, 18:56 | #5 |
Пользователь
Регистрация: 22.05.2011
Сообщений: 44
|
Большое спасибо!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как применить sleep только для form1 | scroyler | Работа с сетью в Delphi | 15 | 11.02.2012 22:54 |
Аналог Sleep() | Larboss | Общие вопросы Delphi | 6 | 29.10.2011 02:21 |
Sleep() работает не точно, как точнее | 8Observer8 | Win Api | 13 | 24.04.2011 19:47 |
Как заменить sleep в потоке? чтобы получить задержку 5 мили | Dasverd2010 | Общие вопросы Delphi | 13 | 07.09.2010 14:29 |
Альтернатива sleep | Zuzlan | Общие вопросы Delphi | 2 | 01.11.2007 01:44 |