Главная страница
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.045 c
1-1165834294
Aleksandr.
2006-12-11 13:51
2007.02.04
Как заставить Excel выровнять высоту ячеек по тексту в них?


15-1168607123
DVM
2007-01-12 16:05
2007.02.04
Как вам такой админ. Говорят правда.


15-1168405419
Steep
2007-01-10 08:03
2007.02.04
Какими компонентами, библиотеками вы пользетесь


4-1157637750
AllDontFire
2006-09-07 18:02
2007.02.04
Как определить какому HDD принадлежит логический диск?


15-1168833694
Slider007
2007-01-15 07:01
2007.02.04
С днем рождения ! 14 января