Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

Win32 и ожидание   Найти похожие ветки 

 
DillerXX ©   (2007-01-11 00:00) [0]

Возможно ли как-либо сделать задержку из юзермода без использования Sleep? Дело в том что он в результате делает остановку как минимум на 100 мс, а это очень много. Может есть какое-то прерывание, которое скажет планировщику закончить работу с данной нитью? Извините за наивность, больше ничего в голову не лезет.
Проблема собственно здесь: http://delphimaster.net/view/9-1168453494/
PS. Мега метод Флёнова не предлагать, спасибо, попробывал.


 
tesseract ©   (2007-01-11 00:02) [1]


>  Дело в том что он в результате делает остановку как минимум
> на 100 мс,


Sleep(1);

Можно внедрить пустой цикл обрабоки сообщений.


 
DillerXX ©   (2007-01-11 00:07) [2]


> Sleep(1);
>
> Можно внедрить пустой цикл обрабоки сообщений.

Желательно почитать ту ссылку, которую я кинул в [0]


 
ProgRAMmer Dimonych ©   (2007-01-11 00:14) [3]

Я не понял, что нужно? Сделать прорисовку игры? Как в Elastomaina? Так там, скорее всего TApplicationEvents.OnIdle-обработчик со строчкой Done:=False, как у Краснова.


 
ferr ©   (2007-01-11 00:15) [4]

Ну во-первых Sleep таки около 25 мс в системах типа NT. А во-вторых действительно неплохо знать зачем..


 
Игорь Шевченко ©   (2007-01-11 00:16) [5]

Попробуй sleep(0)


 
Rouse_ ©   (2007-01-11 00:32) [6]


> Дело в том что он в результате делает остановку как минимум
> на 100 мс

Операционка какая?


 
DillerXX ©   (2007-01-11 00:44) [7]


> Ну во-первых Sleep таки около 25 мс в системах типа NT

Видимо всё же ещё меньше, это я ошибся в своём посте.
Зайдите на http://delphimaster.net/view/9-1168453494/ и лучше перенесите обсуждение туда. Я там написал что уже попробывал. Может у кого код VSync есть.


 
DillerXX ©   (2007-01-11 00:44) [8]


> Операционка какая?

NT, это я на счёт 100 мс погорячился.


 
Rouse_ ©   (2007-01-11 00:51) [9]


> DillerXX ©   (11.01.07 00:44) [8]

В NT можно руками регулировать минимальную частоту срабатывания таймера через конфигурирование системы, по умолчание в районе 50.
Параметр TIMERES в BOOT.INI, можешь установить вплоть до 1 миллисекунды.


 
Vga ©   (2007-01-13 11:29) [10]

> [7] DillerXX ©   (11.01.07 00:44)

А тот что в моем посте в указанной тобой веткене устраивает? У меня работает, при включенной синхронизации загруз проца в районе нуля, при выключенной - в районе 90-100%.


 
Чапаев ©   (2007-01-13 11:58) [11]

> [7] DillerXX ©   (11.01.07 00:44)
По умолчанию 15 afaik. Используй мультимедийный таймер.



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.066 c
2-1169181823
FIL-23
2007-01-19 07:43
2007.02.04
проблемы с совместимостью


11-1147493813
igorek_2005
2006-05-13 08:16
2007.02.04
Преобразование типов(время в строку) в KOL_MCK


2-1169068778
Kostafey
2007-01-18 00:19
2007.02.04
Как удилить в строке пробелы ?


1-1165928238
BOB16
2006-12-12 15:57
2007.02.04
печать на принтер, которые не "по-умолчанию"


3-1163386167
Андрей Л.
2006-11-13 05:49
2007.02.04
Иероглифы в базе.